home *** CD-ROM | disk | FTP | other *** search
-
- /* A Bison parser, made from cplus-parse.y */
-
- #define IDENTIFIER 258
- #define TYPENAME 259
- #define SCSPEC 260
- #define TYPESPEC 261
- #define TYPE_QUAL 262
- #define CONSTANT 263
- #define STRING 264
- #define ELLIPSIS 265
- #define SIZEOF 266
- #define ENUM 267
- #define IF 268
- #define ELSE 269
- #define WHILE 270
- #define DO 271
- #define FOR 272
- #define SWITCH 273
- #define CASE 274
- #define DEFAULT 275
- #define BREAK 276
- #define CONTINUE 277
- #define RETURN 278
- #define GOTO 279
- #define ASM 280
- #define TYPEOF 281
- #define ALIGNOF 282
- #define ATTRIBUTE 283
- #define AGGR 284
- #define DELETE 285
- #define NEW 286
- #define OVERLOAD 287
- #define PRIVATE 288
- #define PUBLIC 289
- #define PROTECTED 290
- #define THIS 291
- #define OPERATOR 292
- #define DYNAMIC 293
- #define POINTSAT_LEFT_RIGHT 294
- #define LEFT_RIGHT 295
- #define SCOPE 296
- #define EMPTY 297
- #define TYPENAME_COLON 298
- #define ASSIGN 299
- #define RANGE 300
- #define OROR 301
- #define ANDAND 302
- #define MIN_MAX 303
- #define EQCOMPARE 304
- #define ARITHCOMPARE 305
- #define LSHIFT 306
- #define RSHIFT 307
- #define UNARY 308
- #define PLUSPLUS 309
- #define MINUSMINUS 310
- #define HYPERUNARY 311
- #define PAREN_STAR_PAREN 312
- #define PAREN_X_SCOPE_STAR_PAREN 313
- #define PAREN_X_SCOPE_REF_PAREN 314
- #define POINTSAT 315
- #define RAISE 316
- #define RAISES 317
- #define RERAISE 318
- #define TRY 319
- #define EXCEPT 320
- #define CATCH 321
- #define TYPENAME_SCOPE 322
- #define TYPENAME_ELLIPSIS 323
- #define PRE_PARSED_FUNCTION_DECL 324
- #define EXTERN_LANG_STRING 325
- #define ALL 326
-
- #line 30 "cplus-parse.y"
-
- #include "config.h"
- #include "tree.h"
- #include "input.h"
- #include "cplus-parse.h"
- #include "cplus-tree.h"
- #include "assert.h"
-
- /* C++ extensions */
- extern tree ridpointers[]; /* need this up here */
- extern tree void_list_node;
-
- #include <stdio.h>
- #include <errno.h>
-
- #ifndef errno
- extern int errno;
- #endif
-
- extern int end_of_file;
-
- void yyerror ();
-
- /* Contains error message to give if user tries to declare
- a variable where one does not belong. */
- static char *stmt_decl_msg = 0;
-
- #ifndef YYDEBUG
- /* Cause the `yydebug' variable to be defined. */
- int yydebug;
- #endif
-
- /* Cons up an empty parameter list. */
- #ifdef __GNU__
- __inline
- #endif
- static tree
- empty_parms ()
- {
- tree parms;
-
- if (strict_prototype)
- parms = void_list_node;
- else
- parms = NULL_TREE;
- return parms;
- }
-
- void yyhook ();
-
- #line 83 "cplus-parse.y"
- typedef union {long itype; tree ttype; enum tree_code code; } YYSTYPE;
- #line 199 "cplus-parse.y"
-
- /* the declaration found for the last IDENTIFIER token read in.
- yylex must look this up to detect typedefs, which get token type TYPENAME,
- so it is left around in case the identifier is not a typedef but is
- used in a context which makes it a reference to a variable. */
- tree lastiddecl;
-
- tree make_pointer_declarator (), make_reference_declarator ();
-
- tree combine_strings ();
- void reinit_parse_for_function ();
- void reinit_parse_for_method ();
-
- /* List of types and structure classes of the current declaration. */
- tree current_declspecs;
-
- int undeclared_variable_notice; /* 1 if we explained undeclared var errors. */
-
- int yylex ();
- extern FILE *finput;
-
- #ifndef YYLTYPE
- typedef
- struct yyltype
- {
- int timestamp;
- int first_line;
- int first_column;
- int last_line;
- int last_column;
- char *text;
- }
- yyltype;
-
- #define YYLTYPE yyltype
- #endif
-
- #define YYACCEPT return(0)
- #define YYABORT return(1)
- #define YYERROR goto yyerrlab
- #include <stdio.h>
-
- #ifndef __STDC__
- #define const
- #endif
-
-
-
- #define YYFINAL 1041
- #define YYFLAG -32768
- #define YYNTBASE 94
-
- #define YYTRANSLATE(x) ((unsigned)(x) <= 326 ? yytranslate[x] : 237)
-
- static const char yytranslate[] = { 0,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 92, 2, 2, 2, 65, 55, 2, 75,
- 88, 63, 61, 45, 62, 74, 64, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 49, 89, 2,
- 47, 2, 48, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 76, 2, 93, 54, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 44, 53, 90, 91, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 46, 50,
- 51, 52, 56, 57, 58, 59, 60, 66, 67, 68,
- 69, 70, 71, 72, 73, 77, 78, 79, 80, 81,
- 82, 83, 84, 85, 86, 87
- };
-
- static const short yyrline[] = { 0,
- 222, 223, 231, 233, 233, 234, 236, 239, 241, 242,
- 247, 249, 251, 254, 259, 264, 267, 269, 273, 277,
- 283, 286, 291, 297, 304, 306, 311, 312, 313, 316,
- 329, 341, 343, 345, 347, 349, 351, 355, 360, 364,
- 368, 372, 376, 382, 392, 401, 408, 417, 426, 433,
- 442, 450, 463, 476, 491, 498, 527, 530, 532, 533,
- 538, 545, 552, 556, 558, 583, 609, 611, 614, 616,
- 617, 619, 623, 625, 627, 629, 631, 635, 637, 639,
- 643, 645, 647, 649, 651, 655, 658, 666, 669, 672,
- 675, 677, 681, 689, 691, 693, 695, 700, 713, 715,
- 748, 751, 753, 755, 757, 759, 762, 766, 791, 805,
- 807, 810, 827, 829, 831, 833, 835, 837, 839, 841,
- 843, 845, 847, 849, 851, 853, 855, 857, 859, 861,
- 863, 871, 873, 875, 877, 880, 884, 968, 978, 979,
- 981, 983, 985, 993, 1005, 1007, 1009, 1042, 1044, 1060,
- 1062, 1066, 1089, 1127, 1129, 1131, 1162, 1170, 1172, 1174,
- 1177, 1180, 1183, 1185, 1189, 1192, 1194, 1201, 1205, 1207,
- 1209, 1211, 1213, 1215, 1217, 1225, 1227, 1229, 1231, 1233,
- 1243, 1245, 1253, 1255, 1259, 1268, 1287, 1293, 1300, 1308,
- 1311, 1318, 1323, 1330, 1332, 1339, 1342, 1344, 1346, 1350,
- 1354, 1356, 1358, 1366, 1369, 1371, 1373, 1384, 1387, 1389,
- 1391, 1395, 1398, 1406, 1407, 1408, 1409, 1413, 1421, 1422,
- 1423, 1426, 1429, 1431, 1433, 1437, 1443, 1445, 1448, 1450,
- 1453, 1456, 1464, 1471, 1473, 1481, 1486, 1487, 1492, 1499,
- 1501, 1511, 1514, 1519, 1520, 1524, 1528, 1536, 1542, 1545,
- 1549, 1551, 1556, 1559, 1562, 1568, 1571, 1575, 1579, 1583,
- 1586, 1590, 1594, 1609, 1622, 1626, 1628, 1631, 1633, 1637,
- 1639, 1641, 1643, 1646, 1649, 1652, 1656, 1659, 1661, 1663,
- 1666, 1670, 1675, 1679, 1683, 1689, 1692, 1694, 1698, 1703,
- 1708, 1717, 1730, 1733, 1735, 1737, 1739, 1741, 1742, 1743,
- 1746, 1749, 1752, 1757, 1802, 1804, 1808, 1810, 1814, 1817,
- 1819, 1823, 1825, 1829, 1831, 1835, 1837, 1841, 1846, 1848,
- 1850, 1852, 1858, 1861, 1862, 1873, 1877, 1880, 1883, 1887,
- 1890, 1892, 1894, 1902, 1904, 1908, 1911, 1915, 1918, 1922,
- 1925, 1928, 1931, 1935, 1938, 1946, 1948, 1952, 1955, 1957,
- 1959, 1961, 1963, 1965, 1967, 1969, 1972, 1975, 1978, 1980,
- 1982, 1984, 1987, 1990, 1992, 1994, 1996, 1998, 2000, 2002,
- 2005, 2008, 2011, 2013, 2020, 2023, 2025, 2027, 2029, 2031,
- 2033, 2035, 2037, 2039, 2043, 2046, 2049, 2052, 2057, 2063,
- 2066, 2069, 2071, 2074, 2077, 2080, 2082, 2086, 2088, 2089,
- 2093, 2098, 2100, 2102, 2105, 2108, 2111, 2113, 2115, 2117,
- 2119, 2121, 2123, 2125, 2127, 2129, 2131, 2133, 2135, 2137,
- 2145, 2147, 2148, 2151, 2158, 2170, 2173, 2176, 2178, 2186,
- 2193, 2199, 2202, 2205, 2210, 2221, 2225, 2228, 2232, 2236,
- 2240, 2244, 2249, 2252, 2258, 2263, 2266, 2272, 2279, 2283,
- 2286, 2293, 2309, 2317, 2321, 2365, 2365, 2441, 2441, 2452,
- 2452, 2456, 2460, 2463, 2468, 2475, 2484, 2493, 2502, 2508,
- 2514, 2515, 2520, 2521, 2525, 2528, 2531, 2544, 2559, 2591,
- 2603, 2605, 2610, 2617, 2619, 2619, 2622, 2641, 2644, 2663,
- 2674, 2677, 2679, 2683, 2686, 2688, 2690, 2696, 2701, 2707,
- 2710, 2711, 2717, 2719, 2722, 2724, 2728, 2733, 2736, 2745,
- 2752, 2757, 2763, 2768, 2772, 2777, 2782, 2796, 2799, 2801,
- 2807, 2811, 2814, 2817, 2822, 2826, 2830, 2836, 2844, 2847,
- 2851, 2854, 2858, 2861, 2863, 2865, 2867, 2869, 2871, 2874,
- 2876, 2883, 2886, 2888, 2890, 2892, 2894, 2896, 2898, 2900,
- 2902, 2904, 2906, 2908, 2917, 2919, 2921, 2923, 2925, 2927,
- 2929, 2931, 2933, 2935, 2937, 2957, 2969, 2981, 2994, 3010,
- 3014
- };
-
- static const char * const yytname[] = { 0,
- "error","$illegal.","IDENTIFIER","TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS",
- "SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
- "BREAK","CONTINUE","RETURN","GOTO","ASM","TYPEOF","ALIGNOF","ATTRIBUTE","AGGR","DELETE",
- "NEW","OVERLOAD","PRIVATE","PUBLIC","PROTECTED","THIS","OPERATOR","DYNAMIC","POINTSAT_LEFT_RIGHT","LEFT_RIGHT",
- "SCOPE","EMPTY","TYPENAME_COLON","'{'","','","ASSIGN","'='","'?'","':'","RANGE",
- "OROR","ANDAND","'|'","'^'","'&'","MIN_MAX","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT",
- "'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","PAREN_STAR_PAREN",
- "PAREN_X_SCOPE_STAR_PAREN","PAREN_X_SCOPE_REF_PAREN","POINTSAT","'.'","'('","'['","RAISE","RAISES","RERAISE","TRY",
- "EXCEPT","CATCH","TYPENAME_SCOPE","TYPENAME_ELLIPSIS","PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","')'","';'","'}'",
- "'~'","'!'","']'","program"
- };
-
- static const short yyr1[] = { 0,
- 94, 94, 96, 95, 97, 95, 98, 98, 98, 98,
- 98, 98, 98, 98, 99, 100, 101, 101, 102, 103,
- 103, 103, 103, 103, 103, 103, 103, 103, 103, 104,
- 104, 104, 104, 104, 104, 104, 104, 105, 105, 105,
- 105, 105, 105, 106, 106, 106, 106, 106, 106, 106,
- 107, 108, 108, 108, 109, 110, 111, 111, 111, 111,
- 112, 112, 112, 112, 112, 112, 113, 113, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 115, 115, 115,
- 116, 116, 116, 116, 116, 117, 117, 118, 118, 119,
- 119, 119, 120, 120, 120, 120, 120, 120, 120, 120,
- 120, 120, 120, 120, 120, 120, 120, 120, 120, 121,
- 121, 121, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 123, 123, 123, 123,
- 123, 123, 124, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 123, 125, 125, 126, 125, 125, 125,
- 125, 125, 125, 125, 125, 127, 127, 127, 127, 127,
- 128, 128, 129, 129, 130, 131, 131, 132, 132, 132,
- 132, 132, 132, 133, 133, 134, 134, 134, 134, 135,
- 135, 135, 135, 136, 136, 136, 136, 137, 137, 137,
- 137, 138, 138, 139, 139, 139, 139, 139, 140, 140,
- 140, 141, 141, 141, 141, 141, 142, 142, 143, 143,
- 144, 144, 146, 145, 145, 148, 147, 147, 150, 149,
- 149, 151, 151, 152, 152, 153, 153, 153, 154, 154,
- 155, 155, 155, 155, 155, 156, 156, 158, 157, 159,
- 157, 157, 157, 157, 157, 160, 160, 161, 161, 162,
- 162, 162, 162, 162, 162, 162, 163, 163, 163, 163,
- 163, 164, 164, 164, 164, 165, 165, 165, 165, 165,
- 165, 166, 167, 167, 167, 167, 167, 167, 167, 167,
- 168, 168, 168, 169, 169, 169, 169, 169, 169, 169,
- 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
- 169, 169, 170, 170, 170, 171, 171, 171, 171, 172,
- 172, 172, 172, 173, 173, 174, 174, 175, 175, 176,
- 176, 177, 177, 178, 178, 180, 179, 181, 181, 181,
- 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
- 181, 181, 182, 182, 182, 182, 182, 182, 182, 182,
- 182, 182, 182, 182, 183, 183, 183, 183, 183, 183,
- 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
- 183, 183, 183, 183, 183, 183, 183, 184, 184, 184,
- 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
- 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
- 186, 186, 186, 187, 188, 189, 189, 190, 190, 190,
- 192, 191, 193, 193, 193, 194, 193, 193, 195, 196,
- 193, 197, 198, 193, 199, 200, 201, 193, 202, 203,
- 204, 193, 205, 193, 206, 193, 207, 193, 208, 193,
- 193, 193, 193, 193, 193, 193, 193, 193, 193, 209,
- 193, 210, 193, 193, 193, 193, 211, 193, 193, 193,
- 212, 212, 212, 214, 213, 215, 216, 215, 217, 215,
- 218, 218, 218, 219, 219, 219, 219, 220, 220, 221,
- 221, 221, 222, 222, 223, 223, 224, 225, 225, 226,
- 226, 226, 226, 226, 226, 226, 226, 227, 227, 227,
- 228, 228, 228, 228, 229, 230, 231, 231, 232, 232,
- 233, 233, 234, 234, 234, 234, 234, 234, 234, 235,
- 235, 236, 236, 236, 236, 236, 236, 236, 236, 236,
- 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
- 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
- 236
- };
-
- static const short yyr2[] = { 0,
- 0, 1, 0, 2, 0, 3, 1, 1, 1, 5,
- 4, 3, 2, 2, 1, 3, 1, 3, 0, 3,
- 3, 3, 3, 3, 2, 2, 2, 2, 1, 3,
- 4, 3, 5, 4, 3, 3, 3, 3, 3, 3,
- 7, 5, 1, 6, 4, 3, 6, 4, 3, 3,
- 2, 2, 4, 2, 3, 0, 0, 1, 3, 2,
- 3, 1, 4, 2, 5, 3, 1, 1, 1, 1,
- 2, 1, 2, 2, 2, 3, 3, 1, 2, 2,
- 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
- 3, 3, 1, 2, 2, 2, 2, 2, 4, 2,
- 4, 2, 5, 3, 4, 4, 2, 2, 5, 1,
- 4, 7, 1, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 5, 3,
- 3, 3, 3, 3, 5, 2, 1, 1, 1, 1,
- 3, 3, 0, 4, 4, 2, 4, 2, 3, 2,
- 2, 1, 5, 4, 2, 2, 2, 2, 5, 3,
- 5, 3, 6, 4, 3, 3, 0, 4, 4, 2,
- 4, 2, 2, 2, 2, 1, 4, 2, 5, 2,
- 1, 2, 1, 2, 0, 2, 2, 3, 3, 3,
- 3, 2, 2, 1, 1, 1, 2, 2, 3, 1,
- 1, 2, 2, 2, 2, 2, 2, 1, 2, 2,
- 3, 1, 2, 1, 1, 1, 4, 4, 1, 1,
- 1, 2, 2, 2, 5, 5, 1, 3, 1, 3,
- 0, 4, 0, 7, 4, 0, 7, 4, 0, 7,
- 4, 0, 6, 1, 3, 1, 4, 4, 1, 3,
- 1, 2, 3, 4, 1, 1, 3, 0, 7, 0,
- 6, 2, 4, 5, 1, 0, 1, 0, 1, 1,
- 2, 5, 2, 2, 2, 2, 1, 2, 4, 2,
- 3, 1, 2, 3, 4, 1, 1, 1, 2, 2,
- 2, 1, 0, 1, 4, 4, 4, 3, 3, 3,
- 1, 2, 2, 3, 5, 5, 3, 3, 3, 3,
- 3, 5, 5, 3, 3, 3, 3, 1, 2, 2,
- 4, 4, 0, 1, 3, 4, 3, 2, 2, 4,
- 3, 2, 2, 1, 3, 1, 3, 2, 2, 0,
- 1, 2, 2, 0, 2, 0, 2, 5, 5, 3,
- 5, 4, 3, 4, 5, 1, 1, 1, 5, 3,
- 3, 1, 5, 5, 3, 5, 4, 3, 4, 1,
- 1, 1, 3, 3, 5, 5, 3, 5, 3, 3,
- 3, 4, 3, 1, 1, 2, 2, 2, 3, 3,
- 3, 2, 7, 7, 5, 7, 3, 1, 2, 2,
- 3, 3, 2, 1, 1, 1, 3, 2, 5, 3,
- 4, 3, 4, 2, 3, 2, 3, 4, 2, 3,
- 1, 2, 2, 2, 0, 1, 2, 2, 4, 4,
- 0, 6, 1, 1, 2, 0, 4, 1, 0, 0,
- 7, 0, 0, 9, 0, 0, 0, 9, 0, 0,
- 0, 9, 0, 6, 0, 5, 0, 7, 0, 4,
- 2, 2, 2, 3, 6, 8, 10, 12, 3, 0,
- 4, 0, 3, 1, 6, 4, 0, 7, 3, 1,
- 3, 3, 3, 0, 4, 0, 0, 4, 0, 4,
- 3, 4, 4, 3, 4, 6, 6, 0, 1, 0,
- 1, 1, 0, 1, 1, 3, 4, 1, 3, 0,
- 1, 3, 2, 1, 1, 2, 2, 2, 4, 4,
- 3, 3, 3, 3, 1, 0, 2, 2, 0, 2,
- 0, 2, 1, 1, 1, 2, 2, 2, 2, 1,
- 3, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 3, 2, 2, 3, 2, 3, 2, 2, 3,
- 2
- };
-
- static const short yydefact[] = { 3,
- 5, 0, 0, 0, 0, 0, 43, 15, 29, 4,
- 0, 9, 0, 8, 7, 185, 0, 0, 196, 6,
- 27, 28, 0, 17, 0, 3, 14, 13, 384, 224,
- 205, 222, 204, 0, 0, 270, 0, 0, 0, 344,
- 344, 344, 0, 344, 0, 0, 229, 223, 277, 265,
- 0, 385, 0, 56, 529, 185, 0, 0, 362, 344,
- 344, 356, 357, 358, 19, 26, 0, 0, 227, 194,
- 195, 216, 207, 214, 206, 0, 25, 0, 197, 0,
- 215, 0, 201, 219, 220, 198, 200, 221, 183, 0,
- 0, 16, 12, 5, 344, 19, 67, 68, 260, 262,
- 19, 571, 569, 568, 344, 566, 553, 554, 0, 560,
- 559, 548, 549, 547, 563, 552, 551, 555, 556, 545,
- 546, 542, 543, 544, 557, 558, 564, 0, 550, 561,
- 0, 340, 208, 0, 271, 0, 0, 388, 525, 0,
- 0, 0, 0, 392, 525, 0, 387, 386, 0, 0,
- 20, 67, 273, 274, 275, 276, 280, 278, 292, 0,
- 37, 344, 0, 346, 0, 40, 51, 57, 54, 0,
- 19, 52, 185, 0, 0, 0, 425, 30, 426, 32,
- 0, 0, 344, 344, 0, 35, 24, 38, 0, 23,
- 344, 0, 346, 19, 22, 199, 21, 36, 39, 203,
- 202, 184, 0, 18, 11, 531, 514, 515, 0, 526,
- 526, 0, 511, 529, 0, 258, 137, 139, 19, 19,
- 181, 176, 152, 0, 19, 82, 81, 19, 83, 84,
- 0, 398, 19, 85, 0, 19, 0, 86, 110, 113,
- 87, 93, 19, 19, 140, 0, 340, 208, 0, 340,
- 0, 138, 565, 562, 567, 224, 342, 0, 344, 344,
- 344, 404, 405, 406, 19, 346, 344, 570, 341, 210,
- 212, 216, 343, 209, 0, 389, 345, 397, 381, 380,
- 379, 391, 0, 390, 531, 230, 0, 288, 287, 286,
- 282, 281, 0, 318, 19, 0, 0, 323, 323, 0,
- 0, 301, 377, 0, 0, 0, 90, 196, 0, 383,
- 0, 19, 534, 535, 0, 533, 0, 540, 532, 0,
- 242, 67, 62, 19, 0, 58, 0, 0, 255, 0,
- 0, 251, 0, 530, 0, 89, 0, 31, 34, 427,
- 428, 0, 361, 360, 0, 0, 344, 344, 370, 371,
- 372, 19, 0, 242, 228, 350, 0, 0, 0, 353,
- 0, 0, 0, 10, 42, 340, 340, 344, 513, 19,
- 517, 516, 518, 336, 268, 334, 0, 399, 0, 98,
- 0, 0, 100, 178, 19, 156, 0, 180, 182, 157,
- 95, 94, 0, 0, 0, 0, 96, 342, 97, 225,
- 0, 19, 19, 0, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 146,
- 150, 151, 187, 186, 19, 19, 107, 19, 208, 102,
- 19, 108, 69, 70, 78, 0, 19, 19, 0, 0,
- 148, 0, 19, 136, 0, 72, 338, 155, 19, 226,
- 339, 69, 400, 158, 344, 414, 408, 403, 0, 0,
- 416, 0, 419, 344, 19, 346, 213, 211, 0, 344,
- 0, 231, 279, 0, 291, 290, 289, 283, 0, 531,
- 320, 319, 384, 344, 19, 19, 19, 531, 0, 324,
- 344, 19, 531, 0, 0, 0, 0, 263, 303, 302,
- 344, 204, 344, 344, 382, 347, 536, 537, 538, 539,
- 0, 0, 0, 241, 0, 60, 0, 64, 19, 0,
- 252, 256, 0, 0, 53, 33, 0, 137, 0, 439,
- 442, 0, 0, 19, 0, 0, 0, 19, 0, 498,
- 472, 0, 0, 474, 0, 434, 0, 0, 0, 433,
- 438, 421, 480, 0, 445, 449, 0, 0, 0, 0,
- 0, 344, 0, 346, 354, 235, 344, 344, 344, 352,
- 217, 218, 384, 344, 344, 344, 19, 344, 522, 521,
- 524, 523, 531, 512, 340, 529, 529, 19, 269, 0,
- 268, 0, 0, 0, 0, 142, 141, 0, 19, 19,
- 92, 91, 131, 130, 502, 501, 0, 128, 127, 125,
- 126, 124, 123, 122, 121, 119, 120, 114, 115, 116,
- 117, 118, 0, 0, 0, 104, 19, 0, 0, 80,
- 174, 175, 133, 132, 0, 0, 0, 0, 79, 71,
- 162, 19, 73, 74, 0, 75, 134, 170, 172, 173,
- 19, 19, 149, 0, 160, 19, 420, 407, 402, 401,
- 344, 415, 417, 410, 0, 412, 0, 272, 395, 0,
- 0, 0, 242, 284, 0, 316, 317, 50, 19, 307,
- 308, 531, 328, 329, 0, 0, 231, 0, 304, 314,
- 315, 531, 0, 310, 231, 309, 311, 0, 0, 0,
- 264, 378, 375, 376, 541, 0, 0, 239, 61, 59,
- 0, 66, 19, 0, 253, 430, 470, 19, 0, 19,
- 0, 19, 0, 459, 461, 462, 463, 0, 0, 499,
- 0, 19, 0, 484, 435, 192, 531, 0, 193, 0,
- 0, 531, 0, 429, 423, 422, 436, 0, 0, 0,
- 0, 0, 0, 359, 355, 344, 344, 19, 374, 373,
- 0, 365, 0, 0, 0, 368, 0, 233, 351, 348,
- 349, 408, 403, 419, 41, 528, 527, 519, 520, 337,
- 335, 261, 0, 99, 101, 0, 177, 144, 0, 111,
- 0, 19, 145, 147, 106, 0, 105, 19, 166, 165,
- 0, 19, 0, 76, 77, 0, 0, 164, 19, 154,
- 0, 418, 413, 344, 411, 344, 344, 344, 238, 285,
- 321, 322, 327, 45, 344, 529, 384, 19, 19, 531,
- 325, 48, 344, 0, 0, 0, 232, 0, 0, 63,
- 0, 254, 257, 19, 0, 19, 0, 0, 425, 491,
- 0, 494, 0, 455, 19, 19, 464, 469, 0, 473,
- 0, 19, 481, 425, 189, 231, 188, 191, 190, 231,
- 424, 19, 479, 0, 483, 482, 0, 0, 0, 0,
- 344, 344, 369, 344, 344, 344, 367, 0, 259, 179,
- 266, 153, 129, 103, 109, 168, 135, 161, 169, 171,
- 0, 159, 409, 396, 393, 394, 236, 305, 306, 531,
- 326, 19, 332, 333, 231, 312, 313, 531, 246, 0,
- 244, 240, 65, 471, 431, 0, 443, 495, 493, 0,
- 492, 453, 19, 0, 460, 0, 476, 0, 485, 437,
- 477, 446, 450, 0, 0, 366, 363, 364, 234, 0,
- 0, 163, 0, 44, 331, 529, 47, 0, 0, 0,
- 19, 440, 0, 0, 0, 19, 456, 457, 503, 0,
- 0, 486, 0, 0, 112, 237, 330, 249, 0, 0,
- 245, 243, 432, 19, 19, 497, 496, 454, 19, 0,
- 0, 504, 505, 465, 475, 0, 0, 0, 247, 0,
- 248, 441, 0, 458, 19, 503, 0, 0, 489, 478,
- 487, 447, 451, 250, 0, 0, 0, 466, 506, 0,
- 0, 19, 19, 444, 507, 0, 0, 490, 488, 448,
- 452, 508, 0, 467, 0, 0, 509, 468, 0, 0,
- 0
- };
-
- static const short yydefgoto[] = { 1039,
- 1, 2, 3, 10, 11, 12, 25, 331, 14, 15,
- 16, 297, 55, 56, 57, 168, 325, 326, 138, 441,
- 442, 236, 545, 335, 238, 239, 240, 241, 242, 395,
- 444, 637, 243, 244, 245, 58, 246, 546, 285, 547,
- 86, 548, 247, 270, 79, 271, 333, 68, 46, 321,
- 69, 888, 286, 953, 47, 839, 514, 920, 921, 980,
- 522, 523, 88, 377, 215, 951, 590, 49, 50, 292,
- 293, 160, 300, 301, 302, 489, 490, 831, 375, 376,
- 249, 268, 250, 456, 311, 312, 70, 353, 71, 251,
- 269, 549, 745, 342, 178, 550, 551, 961, 552, 872,
- 719, 984, 720, 963, 752, 973, 1022, 753, 974, 1023,
- 966, 933, 989, 856, 844, 732, 972, 553, 554, 864,
- 996, 1021, 1020, 555, 556, 731, 607, 991, 992, 993,
- 1033, 460, 213, 214, 146, 366, 587, 172, 166, 318,
- 319, 252
- };
-
- static const short yypact[] = { 67,
- 76, 3328, 3328, 405, -11, 85,-32768,-32768,-32768,-32768,
- 3585,-32768, 4132,-32768,-32768, 209, 4326, 4031, 1047,-32768,
- -32768,-32768, 135,-32768, 121, 87,-32768,-32768,-32768, 119,
- -32768,-32768,-32768, 175, 111,-32768, 2189, 48, 252,-32768,
- -32768,-32768, 559, 223, 348, 208,-32768,-32768, 573, 290,
- 64,-32768, 262,-32768, 356, 136, 192, 192,-32768,-32768,
- -32768,-32768,-32768,-32768, 915,-32768, 186, 225,-32768, 333,
- 430, 907,-32768,-32768,-32768, 363,-32768, 205, 1047, 247,
- -32768, 4393,-32768,-32768,-32768, 1124,-32768,-32768,-32768, 46,
- 420,-32768,-32768, 366,-32768, 81,-32768,-32768,-32768, 427,
- 3905,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 400,-32768,
- -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- -32768,-32768,-32768,-32768,-32768,-32768,-32768, 371,-32768,-32768,
- 649, 939, 591, 709,-32768, 135, 622,-32768, 467, 559,
- 834, 834, 303,-32768, 834, 477,-32768,-32768, 622, 4420,
- -32768, 439,-32768,-32768,-32768,-32768, 763,-32768,-32768, 3389,
- -32768,-32768, 1231, 404, 65, 234,-32768, 79,-32768, 2657,
- 3727,-32768,-32768, 192, 192, 460, 421,-32768,-32768,-32768,
- 629, 629,-32768,-32768, 890,-32768,-32768, 234, 4420,-32768,
- -32768, 1422, 444, 3905,-32768, 1124,-32768,-32768, 234,-32768,
- -32768,-32768, 459,-32768,-32768, 55,-32768,-32768, 1031,-32768,
- 1189, 476, 153, 523, 622,-32768, 540,-32768, 3948, 3991,
- -32768, 103,-32768, 509, 3905,-32768,-32768, 3905,-32768,-32768,
- 2727,-32768, 3905,-32768, 1495, 3905, 499, 539,-32768,-32768,
- 4559, 737, 279, 3770, 584, 1297, 939, 642, 516, 4481,
- 92,-32768, 467,-32768,-32768,-32768,-32768, 568,-32768,-32768,
- -32768,-32768,-32768,-32768, 1322, 537,-32768,-32768, 496, 591,
- -32768,-32768,-32768, 591, 61,-32768,-32768,-32768, 430, 430,
- -32768,-32768, 221,-32768, 534,-32768, 763,-32768,-32768,-32768,
- -32768, 590, 873,-32768, 3905, 4179, 30, 4242, 1142, 38,
- 3121,-32768, 467, 553, 1409, 227, 4583, 639, 555,-32768,
- 554, 3905, 540,-32768, 634,-32768, 113,-32768, 607, 582,
- 632, 540,-32768, 3727, 233,-32768, 281, 123,-32768, 1555,
- 1542, 4583, 342,-32768, 574, 539, 192,-32768,-32768,-32768,
- -32768, 1933, 333, 333, 629, 629,-32768,-32768,-32768,-32768,
- -32768,-32768, 319, 632,-32768, 467, 579, 272, 586,-32768,
- 593, 595, 603,-32768,-32768, 4426, 4426,-32768,-32768, 685,
- -32768,-32768,-32768, 659, 678,-32768, 622,-32768, 2727,-32768,
- 98, 2727,-32768, 650, 3905,-32768, 448,-32768,-32768,-32768,
- -32768,-32768, 648, 651, 460, 658,-32768, 673,-32768,-32768,
- 3077, 3905, 3905, 2797, 3905, 3905, 3905, 3905, 3905, 3905,
- 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,-32768,
- -32768,-32768,-32768,-32768, 3727, 3905,-32768,-32768, 752, 710,
- 3905,-32768, 540,-32768, 725, 463, 3905, 3905, 2867, 401,
- 432, 77, 3905, 456, 92,-32768,-32768,-32768, 3727,-32768,
- -32768,-32768,-32768, 452,-32768, 467, 700, 700, 336, 686,
- -32768, 691, 700,-32768, 81, 692,-32768, 591, 749,-32768,
- 2263, 754, 590, 763,-32768,-32768,-32768,-32768, 4538, 408,
- -32768,-32768, 733, 212, 3905, 3905, 3168, 534, 253,-32768,
- 219, 3168, 246, 41, 738, 739, 742, 704,-32768,-32768,
- -32768, 673,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- 65, 135, 719, 756, 713,-32768, 79,-32768, 3727, 470,
- -32768,-32768, 154, 673,-32768,-32768, 718, 17, 740,-32768,
- -32768, 743, 744, 3905, 771, 734, 736, 3813, 622, 823,
- -32768, 65, 787,-32768, 746,-32768, 4373, 4058, 1649,-32768,
- 822,-32768, 166, 2025,-32768,-32768, 359, 370, 458, 458,
- 890,-32768, 2355, 747,-32768, 797,-32768,-32768,-32768,-32768,
- -32768,-32768, 568, 252,-32768,-32768, 4189, 223,-32768, 430,
- -32768, 430, 55,-32768, 4105, 523, 523, 3905, 622, 758,
- 678, 765, 768, 135, 176,-32768,-32768, 773, 3856, 3727,
- -32768, 4583, 4583, 4583,-32768,-32768, 802, 4615, 2252, 2314,
- 2342, 1638, 1411, 1003, 1219, 851, 851, 454, 454,-32768,
- -32768,-32768, 777, 775, 778,-32768, 3727, 2657, 776,-32768,
- -32768,-32768,-32768,-32768, 784, 785, 460, 794,-32768,-32768,
- -32768, 3727, 540,-32768, 53,-32768,-32768,-32768,-32768,-32768,
- 3727, 3905, 519, 796,-32768, 3727, 700, 496, 496,-32768,
- -32768,-32768, 496, 467, 798,-32768, 792,-32768, 467, 800,
- 274, 807, 632,-32768, 873,-32768,-32768, 575, 3905,-32768,
- -32768, 55, 4583, 4583, 4508, 808, 500, 4252,-32768,-32768,
- -32768, 55, 811,-32768, 564,-32768,-32768, 3436, 3483, 3530,
- -32768, 467, 467, 467,-32768, 88, 827,-32768,-32768,-32768,
- 816,-32768, 3727, 2517,-32768,-32768,-32768, 3905, 830, 3664,
- 2447, 3905, 640,-32768,-32768,-32768,-32768, 819, 831,-32768,
- 846, 3664, 542, 833,-32768,-32768, 266, 258,-32768, 835,
- 268, 250, 837,-32768,-32768,-32768,-32768, 65, 622, 839,
- 1749, 2937, 2937,-32768,-32768,-32768,-32768, 109, 333, 333,
- 385, 467, 842, 282, 845,-32768, 841,-32768, 467, 467,
- 467, 3575, 3575, 4299,-32768,-32768, 430,-32768,-32768, 4583,
- -32768,-32768, 850,-32768,-32768, 96,-32768,-32768, 2657,-32768,
- 855, 3905,-32768,-32768,-32768, 858,-32768, 3905,-32768,-32768,
- 860, 3905, 861,-32768,-32768, 862, 864,-32768, 3727,-32768,
- 880, 496, 467,-32768,-32768,-32768,-32768,-32768, 922,-32768,
- -32768,-32768, 4583,-32768, 644, 523, 924, 3905, 3905, 534,
- -32768,-32768, 655, 3187, 3234, 3281,-32768, 968, 2657,-32768,
- 886,-32768,-32768, 3664, 887, 3905, 965, 892, 899,-32768,
- 902,-32768, 908,-32768, 3905, 3664,-32768,-32768, 135,-32768,
- 912, 3727,-32768,-32768,-32768, 754,-32768,-32768,-32768, 754,
- -32768, 3664, 607, 959,-32768,-32768, 918, 919, 458, 458,
- -32768,-32768,-32768,-32768,-32768,-32768,-32768, 2657,-32768,-32768,
- 967,-32768, 4601,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- 916,-32768, 467, 467, 467, 467,-32768,-32768,-32768, 55,
- -32768, 3905, 4583, 4583, 754,-32768,-32768, 55, 941, 286,
- -32768,-32768,-32768,-32768,-32768, 929,-32768,-32768,-32768, 2117,
- -32768,-32768, 3664, 974,-32768, 94,-32768, 936,-32768,-32768,
- -32768,-32768,-32768, 458, 458, 467, 467, 467,-32768, 2587,
- 935,-32768, 2657,-32768, 4583, 523,-32768, 598, 968, 938,
- 3664,-32768, 953, 940, 1841, 3664,-32768,-32768, 1020, 950,
- 952,-32768, 3007, 3007,-32768,-32768,-32768,-32768, 954, 304,
- -32768,-32768,-32768, 3664, 3905,-32768,-32768,-32768, 3664, 969,
- 124, 1004,-32768,-32768,-32768, 197, 960, 970,-32768, 1053,
- -32768,-32768, 982,-32768, 3905, 1020, 986, 1020,-32768,-32768,
- -32768,-32768,-32768,-32768, 989, 991, 194,-32768,-32768, 460,
- 460, 3664, 3664,-32768,-32768, 1071, 995,-32768,-32768,-32768,
- -32768,-32768, 318,-32768, 1077, 998,-32768,-32768, 1093, 1109,
- -32768
- };
-
- static const short yypgoto[] = {-32768,
- 1084,-32768,-32768, 1108,-32768,-32768,-32768, -2, 1102, 1110,
- -32768,-32768,-32768,-32768, 1063,-32768,-32768, 605, 790, -241,
- -32768, 877, -94, -199, 727, 531, -208, 689,-32768,-32768,
- -32768,-32768, -190, -174, -21, -27, -187, 403, 6, 28,
- 1049, 237, 1096, 863, -80, -1, 11, 587, -13, -161,
- -32768,-32768, 946,-32768,-32768,-32768, -312,-32768, 181,-32768,
- -151, 355, 137,-32768,-32768,-32768, 560,-32768,-32768, 868,
- 687,-32768,-32768, -143, -293, 866,-32768,-32768, 782, 577,
- -133, -210, 1126, 325, -148,-32768, -138, 608, 273, -153,
- -206, -528,-32768, -789, -7, -54,-32768,-32768, 66,-32768,
- -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- -32768,-32768,-32768,-32768,-32768,-32768, -700, 164,-32768, 165,
- -32768, -12,-32768, 814, 1132, 966,-32768, -203, -61, -495,
- 433, 975
- };
-
-
- #define YYLAST 4680
-
-
- static const short yytable[] = { 13,
- 13, 90, 179, 179, 80, 188, 237, 500, 13, 454,
- 373, 317, 19, 19, 328, 705, 391, 87, 334, 392,
- 199, 19, 67, 78, 397, 751, 354, 399, 175, 17,
- 17, 381, 381, 388, 131, 432, 447, 381, 17, 451,
- 381, 566, 343, 344, 361, 381, 733, 133, 381, 389,
- 180, 877, 878, 274, 202, 804, 381, 378, 459, 930,
- 363, 277, 185, 23, 161, 717, -1, 313, 314, 202,
- 495, 496, 497, 481, 939, -2, 135, 87, 482, 643,
- 644, 322, 98, 212, 201, 688, -531, 24, -531, 37,
- 207, -531, 445, 209, 452, 434, 202, 396, 235, 362,
- 433, 434, 202, 162, 202, 315, 19, -531, -531, 430,
- -531, 248, -531, 37, 275, 509, 510, 462, 323, 179,
- 179, 340, 136, 210, 515, 97, 98, 498, 37, 696,
- 697, 435, 165, 203, 37, 453, 394, 435, 163, 164,
- 384, 165, 969, 89, 365, 337, 385, 232, 469, 48,
- 309, 316, -531, 324, 81, 579, 581, 296, 95, 232,
- 305, 232, 369, 881, 208, 91, 338, 339, -510, 274,
- 19, 882, 1006, 308, 453, 837, 93, 97, 98, 359,
- 232, 970, 440, 890, 54, 101, 186, 298, 440, 305,
- 210, 235, 176, 96, 201, 453, 388, 370, 714, 313,
- 314, 371, 308, 653, 248, 453, 557, 558, -531, 92,
- -531, 1007, 389, -531, 97, 98, 1009, 506, 99, 210,
- 401, 97, 98, 472, 173, 623, 144, 445, 235, -531,
- -531, 53, -531, 516, -531, 177, 372, 315, 18, 18,
- 131, 248, 1026, 715, 748, 592, 749, 18, 593, 654,
- 658, 659, 150, 429, 97, 98, 663, 54, 320, 137,
- 470, -231, 209, 165, 167, 787, 137, 48, 467, 189,
- 81, 401, 997, 998, 187, 19, -55, 517, -231, 232,
- -231, 1027, 179, 316, 394, 51, 1010, 394, 645, 162,
- 82, 150, 210, 195, 625, 471, 151, 688, 296, 137,
- 680, 681, 189, 488, 493, 638, 87, 690, 691, 606,
- 673, 19, 150, 190, 503, 143, 401, 667, 401, 711,
- 518, 427, -231, 165, 163, 164, 401, 165, 298, 526,
- 959, 624, 211, 159, 694, 197, 629, 143, -195, 305,
- 598, 689, 162, 165, 636, 48, 867, 81, 1000, 561,
- 147, 148, 308, 428, 865, 519, 869, 317, 562, 568,
- 819, 817, 1035, 328, 139, 141, 142, 585, 145, 885,
- 459, 48, 191, 960, 776, 464, 235, 163, 164, 235,
- 19, 448, 778, 779, 181, 182, 81, 149, 317, 248,
- 281, 1001, 248, 563, 564, 169, 299, 210, 191, 211,
- 791, 965, 170, 97, 98, 1036, 565, 192, 193, 191,
- 465, 466, 278, 279, 280, 767, 449, 282, 678, 206,
- 759, 760, 204, 660, 562, 131, 687, 796, 211, 253,
- 171, 695, 48, 192, 193, 81, 235, 194, 133, 723,
- 639, 48, 803, 728, 192, 193, 754, 162, 254, 248,
- 812, 806, 665, 279, 280, 205, 811, 755, 672, 563,
- 564, 59, 209, 255, 277, 631, 467, 48, 305, 162,
- 216, 641, 883, 277, 686, 19, 797, 221, 222, 693,
- 283, 308, 163, 164, 685, 165, 303, 287, 387, 685,
- 706, 655, 210, 21, 22, 648, 310, 19, 210, 37,
- 1011, 211, 19, 177, 163, 164, 642, 345, 346, 712,
- 341, 386, 756, 841, 210, 356, 417, 418, 419, 210,
- 757, 775, 649, 650, 320, 826, 656, 62, 63, 64,
- 651, 652, 758, 826, 741, 464, 360, 299, 221, 222,
- 500, 500, 500, -46, 713, 37, 305, 364, -46, 387,
- 765, 305, 737, 740, 834, 835, 836, 807, 808, 308,
- 305, 29, 843, 368, 308, 658, 659, 663, 480, 170,
- 465, 466, 786, 308, 209, 152, 98, 153, 154, 155,
- 378, 861, 801, 401, 457, 458, 400, 19, 320, 895,
- 210, 463, 202, 809, 317, 37, 84, 85, 39, 40,
- 978, 156, 34, 450, 210, 979, 211, -49, 455, 901,
- 381, 165, -49, 41, 746, 157, 862, 279, 280, 36,
- 824, 42, 911, 845, 97, 98, 851, 853, 38, 461,
- 832, 29, 59, 43, 474, 277, 507, 508, 580, 582,
- 501, 44, 504, 83, 84, 85, 505, 84, 85, 45,
- 34, 511, 256, 34, 32, 257, 512, 606, 606, 513,
- 34, 525, 938, 821, 822, 37, 567, 36, 39, 40,
- 36, 559, 560, 569, 35, 866, 38, 36, 448, 38,
- 870, 448, 571, 60, 81, 570, 38, 922, 854, 855,
- 572, 61, 583, 830, 584, 296, 296, 296, 62, 63,
- 64, 211, 258, 65, 354, 588, 277, 211, 19, 19,
- 19, 44, 272, 449, 74, 273, 449, 305, 305, 45,
- 34, 48, 589, 211, 594, 298, 298, 298, 211, 305,
- 308, 308, 908, 909, 76, 596, 949, 36, 597, 259,
- 343, 344, 308, 916, 917, 599, 38, 600, 305, 380,
- 383, 926, 977, 956, 260, 185, 628, 84, 85, 143,
- 934, 308, 261, 34, 143, 97, 98, 288, 915, 262,
- 263, 264, 630, 661, 265, 266, 420, 668, 320, 657,
- 36, 679, 267, 662, 666, 847, 698, 699, 664, 38,
- 700, 626, 701, 707, 669, 289, 290, 860, 843, 211,
- 709, 976, 708, 421, 422, 557, 558, 716, 682, 423,
- 424, 425, 426, 211, 718, 692, 746, 721, 722, 724,
- 742, 48, 725, 100, 726, 702, 627, 703, 704, 730,
- 734, 296, 296, 296, 735, 747, 29, 936, 158, 766,
- 277, 305, 317, 768, 19, 19, 19, 782, 954, 143,
- 792, 307, 784, 305, 308, 785, 957, 777, 332, 307,
- 788, 298, 298, 298, 793, 795, 308, 794, 798, 305,
- 37, 799, 800, 39, 40, 97, 98, 475, 606, 606,
- 307, 802, 308, 810, 815, 814, 762, 816, 41, 306,
- 1003, 769, 770, 771, 818, 825, 42, 336, 833, 772,
- 773, 838, 774, 840, 846, 476, 477, 857, 43, 924,
- 1016, 415, 416, 417, 418, 419, 44, 29, 358, 858,
- 859, 935, 863, 868, 45, 871, 276, 305, 875, 884,
- 305, -362, 886, 887, 299, 299, 299, 940, 284, 889,
- 308, 258, 892, 308, 347, 894, 291, 896, 898, 899,
- -362, 37, 348, -362, 39, 40, 900, 327, 305, 349,
- 350, 351, 305, 305, 352, 1028, 1029, 902, 907, 183,
- 919, 308, 912, 923, 925, 308, 308, 184, 259, 927,
- 928, 305, -362, 479, -362, 813, 305, 52, 929, 43,
- 931, 52, 52, 260, 308, 932, -362, 44, 967, 308,
- 937, 261, 941, 952, 374, 45, 942, 943, 262, 263,
- 264, 950, 307, 265, 266, 958, 962, 52, 332, 305,
- 305, 267, 968, 971, 975, 982, 983, 985, 990, 986,
- 746, 988, 308, 308, 256, 31, 32, 33, 994, 52,
- 995, 999, 34, 1005, 279, 280, 282, 1012, 1008, 1002,
- 336, 83, 84, 85, 1004, 1014, 35, 1013, 34, 36,
- 412, 413, 414, 415, 416, 417, 418, 419, 38, 1015,
- 299, 299, 299, 307, 1018, 36, 291, 1024, 1025, 1032,
- 879, 880, 478, 1034, 38, 1037, 1038, 1030, 1031, 602,
- 603, 604, 1040, 608, 609, 610, 611, 612, 613, 614,
- 615, 616, 617, 618, 619, 620, 621, 622, 1041, 94,
- 20, 595, 27, 307, 52, 52, 52, 520, 174, 52,
- 28, 710, 443, 852, 52, 633, 634, 196, 200, 84,
- 85, 647, 132, 738, 355, 34, 468, 307, 903, 981,
- 904, 905, 906, 891, 483, 72, 73, 74, 75, 910,
- 783, 336, 36, 34, 473, 52, 52, 918, 591, 307,
- 675, 38, 134, 52, 494, 781, 374, 76, 761, 1017,
- 36, 140, 1019, 683, 684, 336, 367, 0, 37, 38,
- 873, 491, 40, 586, 485, 0, 0, 0, 0, 0,
- 486, 0, 272, 73, 74, 75, 60, 671, 390, 0,
- 34, 0, 0, 0, 61, 944, 945, 307, 946, 947,
- 948, 62, 63, 64, 76, 0, 492, 36, 0, 0,
- 446, 0, 0, 0, 44, 446, 38, 0, 0, 640,
- 0, 304, 45, 217, -19, -19, -19, -19, 218, 89,
- 207, 219, -19, 0, 0, 336, 0, 0, 0, 0,
- 0, 307, 0, 0, 0, 0, -19, 220, 0, -19,
- 221, 222, 0, 674, 0, 0, 223, 37, -19, 0,
- 52, 224, 52, 52, 0, 0, 780, 413, 414, 415,
- 416, 417, 418, 419, 0, 225, 0, 790, 307, 764,
- 0, 226, 227, 228, 0, 0, 0, 229, 230, 433,
- 434, 0, 0, 0, 0, 231, 327, 0, 0, 0,
- 0, 0, 0, 232, 208, 307, 332, 0, -510, 52,
- 52, 233, 234, 0, 258, 0, 336, 0, 729, 0,
- 307, 207, 0, 37, 0, 0, 435, 436, 0, 307,
- 52, 52, 0, 0, 307, 0, 0, 0, 0, 0,
- 0, 437, 0, 336, 0, 446, 0, 226, 227, 438,
- 0, 259, 0, 229, 230, 0, 0, 823, 336, 0,
- 0, 439, 0, 0, 0, 0, 260, 336, 374, 232,
- 0, 0, 336, 0, 261, 0, 0, 440, 234, 0,
- 0, 262, 263, 264, 0, 0, 265, 266, 0, 0,
- 0, 307, 332, 0, 267, 208, 0, 0, 0, -510,
- 632, 0, 256, 31, 32, 502, 646, 0, 0, 446,
- 34, 0, 357, 0, 217, -19, -19, -19, -19, 218,
- 89, 207, 219, -19, 35, 0, 0, 36, 0, 336,
- 0, 0, 0, 0, 0, 0, 38, -19, 220, 0,
- -19, 221, 222, 0, 0, 0, 0, 223, 37, -19,
- 0, 52, 224, 0, 820, 0, 52, 411, 412, 413,
- 414, 415, 416, 417, 418, 419, 225, 332, 0, 0,
- 893, 0, 226, 227, 228, 0, 0, 0, 229, 230,
- 897, 0, 0, 0, 0, 0, 231, 307, 256, 0,
- 32, 398, 0, 0, 232, 208, 34, 0, 0, -510,
- 0, 0, 233, 234, 0, 0, 913, 914, 0, 0,
- 35, 52, 52, 36, 0, 0, 0, 332, 0, 0,
- 0, 0, 38, 0, 0, 336, 0, 0, 874, 0,
- 0, 0, 0, 0, 0, 256, 0, 32, 524, 0,
- 307, 52, 0, 34, 0, 329, 0, 217, -19, 52,
- -19, -19, 218, 89, 0, 219, -19, 35, 0, 0,
- 36, 0, 0, 0, 0, 0, 332, 0, 0, 38,
- -19, 220, 0, -19, 221, 222, 0, 0, 336, 0,
- 223, 37, -19, 0, 0, 224, 0, 0, 330, 0,
- 955, 0, 0, 0, 0, 0, 0, 0, 0, 225,
- 0, 0, 0, 0, 0, 226, 227, 228, 0, 805,
- 0, 229, 230, 0, 0, 0, 0, 0, 0, 231,
- 0, 0, 0, 0, 0, 0, 0, 232, 332, 0,
- 0, 332, 0, 0, 521, 233, 234, 0, 0, 743,
- 0, 528, -19, -19, -19, -19, 218, 89, 0, 219,
- -19, 529, 52, 530, 531, 532, 533, 534, 535, 536,
- 537, 538, 539, 540, -19, 220, 0, -19, 221, 222,
- 0, 0, 0, 0, 223, 37, -19, 0, 0, 224,
- 0, 541, 177, 410, 411, 412, 413, 414, 415, 416,
- 417, 418, 419, 225, 0, 0, 0, 0, 0, 226,
- 227, 228, 0, 0, 0, 229, 230, 0, 0, 0,
- 0, 0, 0, 231, 0, 542, 0, 0, 543, 0,
- 0, 232, 0, 0, 0, 0, 0, 544, 744, 233,
- 234, 0, 0, 0, 0, 0, 52, 52, 52, 743,
- 0, 528, -19, -19, -19, -19, 218, 89, 0, 219,
- -19, 529, 0, 530, 531, 532, 533, 534, 535, 536,
- 537, 538, 539, 540, -19, 220, 0, -19, 221, 222,
- 0, 0, 0, 0, 223, 37, -19, 0, 0, 224,
- 0, 541, 177, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 225, 0, 0, 0, 0, 0, 226,
- 227, 228, 0, 0, 0, 229, 230, 0, 0, 0,
- 0, 0, 0, 231, 0, 542, 0, 0, 543, 0,
- 0, 232, 0, 0, 0, 0, 0, 544, 876, 233,
- 234, 743, 0, 528, -19, -19, -19, -19, 218, 89,
- 0, 219, -19, 529, 0, 530, 531, 532, 533, 534,
- 535, 536, 537, 538, 539, 540, -19, 220, 0, -19,
- 221, 222, 0, 0, 0, 0, 223, 37, -19, 0,
- 0, 224, 0, 541, 177, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 225, 0, 0, 0, 0,
- 0, 226, 227, 228, 0, 0, 0, 229, 230, 0,
- 0, 0, 0, 0, 0, 231, 0, 542, 0, 0,
- 543, 0, 0, 232, 0, 0, 0, 0, 0, 544,
- 987, 233, 234, 527, 0, 528, -19, -19, -19, -19,
- 218, 89, 0, 219, -19, 529, 0, 530, 531, 532,
- 533, 534, 535, 536, 537, 538, 539, 540, -19, 220,
- 0, -19, 221, 222, 0, 0, 0, 0, 223, 37,
- -19, 0, 0, 224, 0, 541, 177, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 225, 0, 0,
- 0, 0, 0, 226, 227, 228, 0, 0, 0, 229,
- 230, 0, 0, 0, 0, 0, 0, 231, 0, 542,
- 0, 0, 543, 0, 0, 232, 0, 0, 0, 0,
- 0, 544, 0, 233, 234, 750, 0, 528, -19, -19,
- -19, -19, 218, 89, 0, 219, -19, 529, 0, 530,
- 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
- -19, 220, 0, -19, 221, 222, 0, 0, 0, 0,
- 223, 37, -19, 0, 0, 224, 0, 541, 177, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 225,
- 0, 0, 0, 0, 0, 226, 227, 228, 0, 0,
- 0, 229, 230, 0, 0, 0, 0, 0, 0, 231,
- 0, 542, 0, 0, 543, 0, 0, 232, 0, 0,
- 0, 0, 0, 544, 0, 233, 234, 964, 0, 528,
- -19, -19, -19, -19, 218, 89, 0, 219, -19, 529,
- 0, 530, 531, 532, 533, 534, 535, 536, 537, 538,
- 539, 540, -19, 220, 0, -19, 221, 222, 0, 0,
- 0, 0, 223, 37, -19, 0, 0, 224, 0, 541,
- 177, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 225, 0, 0, 0, 0, 0, 226, 227, 228,
- 0, 0, 0, 229, 230, 0, 0, 0, 0, 102,
- 0, 231, -19, 542, -19, -19, 543, 0, 0, 232,
- -19, 0, 0, 0, 0, 544, 0, 233, 234, 0,
- 0, 0, 0, 0, -19, 0, 0, -19, 103, 104,
- 0, 0, 0, 0, 0, 0, -19, 105, 106, 0,
- 0, 0, 0, 0, 107, 108, 109, 0, 0, 110,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 0, 125, 126, 0, 0, 0,
- 0, 127, 0, 670, 128, 217, -19, -19, -19, -19,
- 218, 89, 207, 219, -19, 0, 0, 0, 0, 129,
- 130, 0, 0, 0, 0, 0, 0, 0, -19, 220,
- 0, -19, 221, 222, 0, 0, 0, 0, 223, 37,
- -19, 0, 0, 224, 407, 408, 409, 410, 411, 412,
- 413, 414, 415, 416, 417, 418, 419, 225, 0, 0,
- 0, 0, 0, 226, 227, 228, 0, 0, 0, 229,
- 230, 0, 0, 0, 0, 0, 0, 231, 0, 0,
- 0, 0, 0, 0, 0, 232, 208, 0, 0, 0,
- -510, 0, 0, 233, 234, 763, 0, 217, -19, -19,
- -19, -19, 218, 89, 207, 219, -19, 408, 409, 410,
- 411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
- -19, 220, 0, -19, 221, 222, 0, 0, 0, 0,
- 223, 37, -19, 0, 0, 224, 409, 410, 411, 412,
- 413, 414, 415, 416, 417, 418, 419, 0, 0, 225,
- 0, 0, 0, 0, 0, 226, 227, 228, 0, 0,
- 0, 229, 230, 0, 0, 0, 0, 0, 0, 231,
- 0, 0, 0, 0, 0, 0, 0, 232, 208, 0,
- 0, 0, -510, 0, 0, 233, 234, 848, 0, 217,
- -19, -19, -19, -19, 218, 89, 0, 219, -19, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -19, 220, 0, -19, 221, 222, 0, 0,
- 0, 0, 223, 37, -19, 0, 0, 224, 0, 0,
- 849, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 225, 0, 0, 0, 0, 0, 226, 227, 228,
- 0, 0, 0, 229, 230, 0, 0, 329, 0, 217,
- -19, 231, -19, -19, 218, 89, 0, 219, -19, 232,
- 0, 0, 0, 0, 0, 850, 0, 233, 234, 0,
- 0, 0, -19, 220, 0, -19, 221, 222, 0, 0,
- 0, 0, 223, 37, -19, 0, 0, 224, 0, 0,
- 330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 225, 0, 0, 0, 0, 0, 226, 227, 228,
- 0, 0, 0, 229, 230, 0, 0, 329, 0, 217,
- -19, 231, -19, -19, 218, 89, 0, 219, -19, 232,
- 0, 0, 0, 0, 0, 0, 842, 233, 234, 0,
- 0, 0, -19, 220, 0, -19, 221, 222, 0, 0,
- 0, 0, 223, 37, -19, 0, 0, 224, 0, 0,
- 330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 225, 0, 0, 0, 0, 0, 226, 227, 228,
- 0, 0, 0, 229, 230, 0, 0, 329, 0, 217,
- -19, 231, -19, -19, 218, 89, 0, 219, -19, 232,
- 0, 0, 0, 0, 0, 0, -267, 233, 234, 0,
- 0, 0, -19, 220, 0, -19, 221, 222, 0, 0,
- 0, 0, 223, 37, -19, 0, 0, 224, 0, 0,
- 330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 225, 0, 0, 0, 0, 0, 226, 227, 228,
- 0, 0, 0, 229, 230, 0, 0, 393, 0, 217,
- -19, 231, -19, -19, 218, 89, 0, 219, -19, 232,
- 0, 0, 0, 0, 0, 0, 0, 233, 234, 0,
- 0, 0, -19, 220, 0, -19, 221, 222, 0, 0,
- 0, 0, 223, 37, -19, 0, 0, 224, 0, 0,
- -143, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 225, 0, 0, 0, 0, 0, 226, 227, 228,
- 0, 0, 0, 229, 230, 0, 0, 605, 0, 217,
- -19, 231, -19, -19, 218, 89, 0, 219, -19, 232,
- 0, 0, 0, 0, 0, 0, 0, 233, 234, 0,
- 0, 0, -19, 220, 0, -19, 221, 222, 0, 0,
- 0, 0, 223, 37, -19, 0, 0, 224, 0, 0,
- 0, 0, 0, 0, 0, -500, 0, 0, 0, 0,
- 0, 225, 0, 0, 0, 0, 0, 226, 227, 228,
- 0, 0, 0, 229, 230, 0, 0, 635, 0, 217,
- -19, 231, -19, -19, 218, 89, 0, 219, -19, 232,
- 0, 0, 0, 0, 0, 0, 0, 233, 234, 0,
- 0, 0, -19, 220, 0, -19, 221, 222, 0, 0,
- 0, 0, 223, 37, -19, 0, 0, 224, 0, 0,
- -167, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 225, 0, 0, 0, 0, 0, 226, 227, 228,
- 0, 0, 0, 229, 230, 0, 0, 605, 0, 217,
- -19, 231, -19, -19, 218, 89, 0, 219, -19, 232,
- 0, 0, 0, 0, 0, 0, 0, 233, 234, 0,
- 0, 0, -19, 220, 0, -19, 221, 222, 0, 0,
- 0, 0, 223, 37, -19, 0, 0, 224, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 225, 0, 0, 0, 0, 0, 226, 227, 228,
- 0, 0, 0, 229, 230, 0, 0, 605, 0, 217,
- -19, 231, -19, -19, 218, 89, 0, 219, -19, 232,
- 0, 0, 0, 0, 0, -500, 0, 233, 234, 0,
- 0, 0, -19, 220, 0, -19, 221, 222, 0, 0,
- 0, 0, 223, 37, -19, 0, 0, 224, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 225, 0, 0, 0, 0, 0, 226, 227, 228,
- 0, 0, 0, 229, 230, 0, 0, 601, 0, 217,
- -19, 231, -19, -19, 218, 89, 0, 219, -19, 232,
- 0, 0, 0, 0, -500, 0, 0, 233, 234, 0,
- 0, 0, -19, 220, 0, -19, 221, 222, 0, 0,
- 0, 0, 223, 37, -19, 0, 0, 224, 0, 0,
- 0, 294, 0, -19, -19, -19, -19, -19, 0, 0,
- 0, 225, -19, 0, 0, 0, 0, 226, 227, 228,
- 0, 0, 0, 229, 230, 0, -19, 0, 0, -19,
- 0, 231, 0, -294, -294, -294, 0, -19, -19, 232,
- -19, -19, 0, 0, 0, 0, 0, 233, 234, 295,
- 29, 0, 0, 0, 0, -19, 0, 207, 0, 0,
- 0, 0, 0, -19, 0, 0, 0, 294, 0, -19,
- -19, -19, -19, -19, 0, -19, 0, 0, -19, 0,
- 0, 0, 0, -19, 37, 0, 0, 39, 40, 499,
- -294, -19, -19, 0, 0, -19, 0, 0, 0, -296,
- -296, -296, 183, -19, -19, 0, -19, -19, 0, 0,
- 184, 0, 0, 0, 294, 295, -19, -19, -19, -19,
- -19, -19, 43, 0, 0, -19, 0, 0, 0, -19,
- 44, 208, 0, 0, 0, -510, 0, 0, 45, -19,
- 0, -19, -19, 0, 0, 0, -295, -295, -295, -19,
- -19, -19, 0, -19, -19, 499, -296, -19, 0, 0,
- 0, 294, 295, -19, -19, -19, -19, -19, -19, 0,
- 0, 0, -19, 0, 0, 0, -19, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -19, 0, -19, -19,
- 0, 0, 0, -297, -297, -297, -19, -19, -19, 0,
- -19, -19, 499, -295, -19, 0, 0, 0, 4, 295,
- -19, -19, -19, -19, -19, -19, 0, 0, 0, -19,
- 0, 0, 0, -19, 0, 0, 0, 0, 0, 0,
- 0, 0, 5, -19, 0, -19, -19, 0, 0, 6,
- 0, 0, 0, -19, -19, -19, 0, -19, -19, 499,
- -297, -19, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -19, 0, 0, 0, 0, 0, 0, 294,
- -19, -19, -19, -19, -19, -19, 0, 0, 0, 0,
- -19, 0, -19, 0, 0, 0, 0, 0, 0, 0,
- -19, 0, 7, 8, -19, 0, 9, -19, -19, 0,
- 0, -293, -293, -293, 0, -19, -19, 0, -19, -19,
- 0, 0, 0, 0, 0, 0, 294, 295, -19, -19,
- -19, -19, -19, -19, 0, 0, 0, -19, 0, 0,
- 0, -19, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -19, 0, -19, -19, 0, 0, 0, -299, -299,
- -299, -19, -19, -19, 0, -19, -19, 0, -293, -19,
- 0, 0, 0, 294, 295, -19, -19, -19, -19, -19,
- -19, 0, 0, 0, -19, 0, 0, 0, -19, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, -19, 0,
- -19, -19, 0, 0, 0, -298, -298, -298, -19, -19,
- -19, 0, -19, -19, 0, -299, -19, 0, 0, 0,
- 294, 295, -19, -19, -19, -19, -19, -19, 0, 0,
- 0, -19, 0, 0, 0, -19, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -19, 0, -19, -19, 0,
- 0, 0, -300, -300, -300, -19, -19, -19, 0, -19,
- -19, 0, -298, -19, 0, 0, 0, 573, 295, 0,
- 0, 277, 0, 0, -19, 4, 0, -19, -19, -19,
- -19, -19, -19, 0, 0, 0, -19, 0, 0, 0,
- 0, 0, 0, 0, -19, 0, 0, 0, 0, 0,
- -19, 37, -19, -19, 574, 40, 0, 0, 0, -300,
- -19, -19, -19, 0, -19, -19, 0, 0, 26, 575,
- 0, 0, 0, 0, 0, 0, 0, 576, 0, -19,
- 0, 0, 0, 0, 262, 263, 264, -19, 0, 577,
- 266, 0, 0, 0, 0, 0, 0, 578, 0, -19,
- 0, 0, 0, 0, 0, 45, 528, -19, 0, 7,
- 0, 218, 89, 9, 219, -19, 529, 0, 530, 531,
- 532, 533, 534, 535, 536, 537, 538, 539, 540, 0,
- 220, 0, 0, 221, 222, 0, 0, 0, 0, 223,
- 37, 0, 0, 0, 224, 0, 541, 177, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 225, 0,
- 0, 0, 0, 0, 226, 227, 228, 0, 0, 217,
- 229, 230, 0, 0, 218, 89, 0, 219, 231, 0,
- 542, 0, 0, 543, 0, 0, 232, 0, 0, 0,
- 0, 0, 544, 220, 233, 234, 221, 222, 0, 0,
- 0, 0, 223, 37, 0, 0, 0, 224, 0, 0,
- 0, 0, 217, 0, 0, 0, 0, 218, 89, 0,
- 219, 225, 0, 0, 0, 0, 0, 226, 227, 228,
- 0, 0, 0, 229, 230, 0, 220, 0, 0, 221,
- 222, 231, 0, 0, 0, 223, 37, 0, 0, 232,
- 224, 0, 0, 0, -88, 217, 0, 233, 234, 0,
- 218, 89, 0, 219, 225, 0, 0, 0, 0, 0,
- 226, 227, 228, 0, 0, 0, 229, 230, 0, 220,
- 0, 0, 221, 222, 231, 431, 0, 0, 223, 37,
- 0, 0, 232, 224, 0, 0, 0, 0, 217, 0,
- 233, 234, 0, 218, 89, 0, 219, 225, 0, 0,
- 0, 0, 0, 226, 227, 228, 0, 0, 0, 229,
- 230, 0, 220, 0, 0, 221, 222, 231, 0, 0,
- 0, 223, 37, 0, 0, 232, 224, 0, 0, 789,
- 0, 727, 0, 233, 234, 0, 0, 217, 0, 0,
- 225, 0, 218, 89, 0, 219, 226, 227, 228, 0,
- 0, 0, 229, 230, 0, 0, 0, 0, 0, 0,
- 231, 220, 0, 0, 221, 222, 0, 0, 232, 0,
- 223, 37, 0, 0, 0, 224, 233, 234, 0, 0,
- 217, 0, 0, 0, 0, 218, 89, 0, 219, 225,
- 0, 0, 0, 0, 0, 226, 227, 228, 0, 0,
- 0, 229, 230, 0, 220, 0, 0, 221, 222, 231,
- 0, 0, 0, 223, 37, 0, 0, 232, 224, 0,
- 0, 0, 0, 217, 0, 233, 234, 0, 218, 89,
- 0, 219, 225, 0, 0, 0, 0, 0, 226, 227,
- 228, 0, 0, 0, 229, 230, 0, 220, 0, 0,
- 221, 222, 379, 0, 0, 0, 223, 37, 0, 0,
- 232, 224, 0, 29, 72, 73, 74, 75, 233, 234,
- 0, 0, 34, 0, 0, 225, 0, 0, 0, 0,
- 0, 226, 227, 228, 0, 0, 76, 229, 230, 36,
- 29, 72, 73, 74, 75, 382, 0, 37, 38, 34,
- 39, 40, 0, 232, 0, 0, 0, 0, 0, 0,
- 0, 233, 234, 76, 0, 60, 36, 0, 0, 0,
- 0, 0, 0, 61, 37, 38, 0, 39, 40, 0,
- 62, 63, 64, 0, 0, 65, 0, 573, 256, 31,
- 32, 33, 60, 44, 0, 0, 34, 0, 0, 77,
- 61, 45, 0, 0, 0, 0, 0, 62, 63, 64,
- 35, 0, 65, 36, 29, 30, 31, 32, 33, 0,
- 44, 37, 38, 34, 574, 40, 739, 0, 45, 0,
- 0, 0, 0, 0, 0, 0, 0, 35, 0, 575,
- 36, 0, 0, 0, 0, 0, 0, 576, 37, 38,
- 0, 39, 40, 0, 262, 263, 264, 0, 0, 577,
- 266, 29, 256, 31, 32, 33, 41, 578, 0, 0,
- 34, 573, 0, 0, 42, 45, 0, 0, 207, 0,
- 0, 0, 0, 0, 35, 0, 43, 36, 0, 0,
- 0, 0, 0, 0, 44, 37, 38, 0, 39, 40,
- 0, 0, 45, 0, 0, 37, 0, 0, 574, 40,
- 0, 0, 0, 41, 0, 0, 0, 0, 0, 0,
- 0, 42, 0, 575, 483, 59, 0, 0, 0, 0,
- 0, 576, 0, 43, 827, 59, 0, 0, 262, 263,
- 264, 44, 0, 577, 266, 0, 0, 0, 0, 45,
- 0, 578, 208, 0, 0, 0, -510, 0, 37, 45,
- 0, 484, 40, 0, 485, 0, 0, 0, 37, 0,
- 486, 39, 40, 0, 828, 0, 60, 0, 0, 0,
- 829, 573, -525, 0, 61, 277, 60, 0, 0, 0,
- 0, 62, 63, 64, 61, 0, 487, 0, 0, 0,
- 0, 62, 63, 64, 44, 0, 65, 0, 29, 59,
- 0, 0, 45, 0, 44, 37, 0, 0, 574, 40,
- 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 575, 0, 0, 0, 0, 0, 0,
- 0, 576, 37, 0, 0, 39, 40, 0, 262, 263,
- 264, 0, 0, 577, 266, 29, 59, 0, 0, 0,
- 60, 578, 0, 0, 0, 0, 0, 0, 61, 45,
- 0, 0, 0, 198, 0, 62, 63, 64, 0, 0,
- 65, 0, 0, 0, 0, 0, 0, 0, 44, 37,
- 0, 0, 39, 40, 66, -531, 45, -531, 0, 0,
- -531, 0, 29, 59, 0, 0, 0, 60, 573, 0,
- 0, 0, 162, 0, 0, 61, -531, -531, 0, -531,
- 0, -531, 62, 63, 64, 0, 0, 65, 0, 0,
- 0, 0, 0, 0, 0, 44, 37, 0, 0, 39,
- 40, 736, 37, 45, 0, 574, 40, 163, 164, 0,
- 165, 0, 0, 0, 60, 0, 0, 0, 0, 0,
- 575, -195, 61, 258, 272, 0, 74, 273, 576, 62,
- 63, 64, 34, 0, 65, 262, 263, 264, 0, 0,
- 577, 266, 44, 0, 0, 0, 76, 0, 578, 36,
- 45, 256, 31, 32, 33, 0, 45, 0, 38, 34,
- 259, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 35, 0, 260, 36, 0, 0, 0,
- 0, 0, 0, 261, 0, 38, 0, 0, 0, 0,
- 262, 263, 264, 0, 0, 265, 266, 0, 0, 0,
- 0, 0, 347, 267, 0, 0, 0, 0, 0, 0,
- 348, 0, 0, 0, 0, 0, 0, 349, 350, 351,
- 0, 0, 352, 402, 403, 404, 0, 0, 405, 406,
- 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
- 417, 418, 419, -90, 402, 403, 404, 0, 0, 405,
- 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
- 416, 417, 418, 419, 0, 0, 676, 677, 402, 403,
- 404, 0, 0, 405, 406, 407, 408, 409, 410, 411,
- 412, 413, 414, 415, 416, 417, 418, 419, 404, 0,
- 0, 405, 406, 407, 408, 409, 410, 411, 412, 413,
- 414, 415, 416, 417, 418, 419, 406, 407, 408, 409,
- 410, 411, 412, 413, 414, 415, 416, 417, 418, 419
- };
-
- static const short yycheck[] = { 2,
- 3, 23, 57, 58, 18, 67, 101, 301, 11, 251,
- 214, 165, 2, 3, 168, 511, 225, 19, 170, 228,
- 82, 11, 17, 18, 233, 554, 188, 236, 56, 2,
- 3, 219, 220, 224, 37, 244, 247, 225, 11, 250,
- 228, 354, 181, 182, 193, 233, 542, 37, 236, 224,
- 58, 752, 753, 134, 9, 3, 244, 41, 265, 849,
- 194, 7, 65, 75, 1, 49, 0, 3, 4, 9,
- 33, 34, 35, 44, 864, 0, 29, 79, 49, 3,
- 4, 3, 4, 96, 86, 45, 23, 3, 25, 37,
- 10, 28, 246, 96, 3, 4, 9, 231, 101, 194,
- 3, 4, 9, 40, 9, 41, 96, 44, 45, 243,
- 47, 101, 49, 37, 136, 3, 4, 266, 40, 174,
- 175, 176, 75, 96, 324, 3, 4, 90, 37, 89,
- 90, 40, 78, 88, 37, 83, 231, 40, 75, 76,
- 38, 78, 49, 9, 206, 173, 44, 83, 88, 13,
- 163, 87, 89, 75, 18, 366, 367, 160, 40, 83,
- 163, 83, 10, 55, 84, 45, 174, 175, 88, 250,
- 160, 63, 49, 163, 83, 88, 90, 3, 4, 192,
- 83, 88, 91, 88, 49, 75, 1, 160, 91, 192,
- 163, 194, 1, 75, 196, 83, 387, 45, 45, 3,
- 4, 49, 192, 445, 194, 83, 345, 346, 23, 89,
- 25, 88, 387, 28, 3, 4, 20, 312, 44, 192,
- 45, 3, 4, 285, 89, 425, 4, 381, 231, 44,
- 45, 23, 47, 1, 49, 44, 84, 41, 2, 3,
- 243, 231, 49, 90, 79, 379, 81, 11, 382, 449,
- 457, 458, 45, 243, 3, 4, 463, 49, 25, 48,
- 40, 28, 265, 78, 3, 90, 48, 131, 270, 45,
- 134, 45, 973, 974, 89, 265, 44, 45, 45, 83,
- 47, 88, 337, 87, 379, 13, 90, 382, 442, 40,
- 18, 45, 265, 89, 428, 75, 89, 45, 301, 48,
- 89, 90, 45, 298, 299, 439, 308, 89, 90, 404,
- 472, 301, 45, 89, 88, 43, 45, 466, 45, 519,
- 40, 43, 89, 78, 75, 76, 45, 78, 301, 337,
- 45, 426, 96, 44, 89, 89, 431, 65, 89, 342,
- 395, 89, 40, 78, 439, 209, 89, 211, 45, 352,
- 3, 4, 342, 75, 89, 75, 89, 511, 40, 88,
- 673, 88, 45, 517, 40, 41, 42, 370, 44, 88,
- 577, 235, 40, 88, 585, 40, 379, 75, 76, 382,
- 370, 40, 586, 587, 60, 61, 250, 40, 542, 379,
- 88, 88, 382, 75, 76, 40, 160, 370, 40, 163,
- 600, 930, 47, 3, 4, 88, 88, 75, 76, 40,
- 75, 76, 140, 141, 142, 564, 75, 145, 480, 95,
- 559, 560, 3, 88, 40, 428, 488, 627, 192, 105,
- 75, 493, 296, 75, 76, 299, 439, 75, 428, 534,
- 40, 305, 642, 538, 75, 76, 88, 40, 49, 439,
- 657, 651, 465, 181, 182, 90, 656, 88, 471, 75,
- 76, 4, 465, 93, 7, 3, 468, 331, 471, 40,
- 44, 40, 88, 7, 487, 465, 628, 30, 31, 492,
- 4, 471, 75, 76, 487, 78, 162, 49, 41, 492,
- 512, 40, 465, 89, 90, 40, 93, 487, 471, 37,
- 996, 265, 492, 44, 75, 76, 75, 183, 184, 40,
- 90, 3, 55, 713, 487, 191, 63, 64, 65, 492,
- 63, 583, 67, 68, 25, 687, 75, 70, 71, 72,
- 75, 76, 75, 695, 548, 40, 93, 301, 30, 31,
- 834, 835, 836, 44, 75, 37, 549, 89, 49, 41,
- 563, 554, 547, 548, 698, 699, 700, 652, 40, 549,
- 563, 3, 714, 88, 554, 772, 773, 774, 296, 47,
- 75, 76, 594, 563, 577, 3, 4, 5, 6, 7,
- 41, 40, 637, 45, 260, 261, 88, 577, 25, 798,
- 563, 267, 9, 75, 748, 37, 6, 7, 40, 41,
- 3, 29, 12, 88, 577, 8, 370, 44, 41, 809,
- 798, 78, 49, 55, 549, 43, 75, 345, 346, 29,
- 682, 63, 826, 718, 3, 4, 721, 722, 38, 93,
- 692, 3, 4, 75, 45, 7, 3, 4, 366, 367,
- 88, 83, 88, 5, 6, 7, 93, 6, 7, 91,
- 12, 45, 4, 12, 6, 7, 75, 752, 753, 28,
- 12, 88, 862, 89, 90, 37, 88, 29, 40, 41,
- 29, 347, 348, 88, 26, 737, 38, 29, 40, 38,
- 742, 40, 88, 55, 548, 93, 38, 839, 49, 50,
- 88, 63, 368, 688, 10, 698, 699, 700, 70, 71,
- 72, 465, 3, 75, 866, 47, 7, 471, 698, 699,
- 700, 83, 4, 75, 6, 7, 75, 720, 721, 91,
- 12, 585, 45, 487, 75, 698, 699, 700, 492, 732,
- 720, 721, 89, 90, 26, 88, 888, 29, 88, 40,
- 879, 880, 732, 89, 90, 88, 38, 75, 751, 219,
- 220, 846, 956, 915, 55, 758, 47, 6, 7, 487,
- 855, 751, 63, 12, 492, 3, 4, 5, 830, 70,
- 71, 72, 48, 88, 75, 76, 40, 29, 25, 455,
- 29, 49, 83, 93, 93, 720, 49, 49, 464, 38,
- 49, 40, 89, 75, 470, 33, 34, 732, 950, 563,
- 88, 953, 47, 67, 68, 944, 945, 90, 484, 73,
- 74, 75, 76, 577, 75, 491, 751, 75, 75, 49,
- 548, 685, 89, 34, 89, 501, 75, 503, 504, 7,
- 44, 834, 835, 836, 89, 14, 3, 859, 49, 93,
- 7, 844, 996, 47, 834, 835, 836, 90, 910, 577,
- 49, 163, 88, 856, 844, 88, 918, 585, 170, 171,
- 88, 834, 835, 836, 88, 88, 856, 93, 93, 872,
- 37, 88, 88, 40, 41, 3, 4, 5, 973, 974,
- 192, 88, 872, 88, 93, 88, 562, 88, 55, 163,
- 985, 567, 568, 569, 88, 88, 63, 171, 88, 575,
- 576, 75, 578, 88, 75, 33, 34, 89, 75, 844,
- 1005, 61, 62, 63, 64, 65, 83, 3, 192, 89,
- 75, 856, 90, 89, 91, 89, 137, 930, 90, 88,
- 933, 25, 88, 93, 698, 699, 700, 872, 149, 90,
- 930, 3, 88, 933, 55, 88, 157, 88, 88, 88,
- 44, 37, 63, 47, 40, 41, 93, 168, 961, 70,
- 71, 72, 965, 966, 75, 1020, 1021, 88, 47, 55,
- 3, 961, 49, 88, 88, 965, 966, 63, 40, 15,
- 89, 984, 76, 295, 78, 661, 989, 13, 90, 75,
- 89, 17, 18, 55, 984, 88, 90, 83, 933, 989,
- 89, 63, 44, 88, 215, 91, 89, 89, 70, 71,
- 72, 45, 324, 75, 76, 75, 88, 43, 330, 1022,
- 1023, 83, 49, 88, 90, 88, 961, 75, 9, 90,
- 965, 966, 1022, 1023, 4, 5, 6, 7, 89, 65,
- 89, 88, 12, 75, 772, 773, 774, 88, 45, 984,
- 324, 5, 6, 7, 989, 3, 26, 88, 12, 29,
- 58, 59, 60, 61, 62, 63, 64, 65, 38, 88,
- 834, 835, 836, 385, 89, 29, 287, 89, 88, 9,
- 756, 757, 293, 89, 38, 9, 89, 1022, 1023, 401,
- 402, 403, 0, 405, 406, 407, 408, 409, 410, 411,
- 412, 413, 414, 415, 416, 417, 418, 419, 0, 26,
- 3, 385, 11, 425, 140, 141, 142, 328, 56, 145,
- 11, 517, 246, 721, 150, 437, 438, 79, 5, 6,
- 7, 443, 37, 547, 189, 12, 274, 449, 814, 959,
- 816, 817, 818, 789, 3, 4, 5, 6, 7, 825,
- 591, 425, 29, 12, 287, 181, 182, 833, 377, 471,
- 474, 38, 37, 189, 299, 589, 377, 26, 561, 1006,
- 29, 40, 1008, 485, 486, 449, 211, -1, 37, 38,
- 748, 40, 41, 370, 43, -1, -1, -1, -1, -1,
- 49, -1, 4, 5, 6, 7, 55, 471, 224, -1,
- 12, -1, -1, -1, 63, 881, 882, 519, 884, 885,
- 886, 70, 71, 72, 26, -1, 75, 29, -1, -1,
- 246, -1, -1, -1, 83, 251, 38, -1, -1, 440,
- -1, 1, 91, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, -1, -1, 519, -1, -1, -1, -1,
- -1, 563, -1, -1, -1, -1, 26, 27, -1, 29,
- 30, 31, -1, 474, -1, -1, 36, 37, 38, -1,
- 296, 41, 298, 299, -1, -1, 588, 59, 60, 61,
- 62, 63, 64, 65, -1, 55, -1, 599, 600, 563,
- -1, 61, 62, 63, -1, -1, -1, 67, 68, 3,
- 4, -1, -1, -1, -1, 75, 517, -1, -1, -1,
- -1, -1, -1, 83, 84, 627, 628, -1, 88, 345,
- 346, 91, 92, -1, 3, -1, 600, -1, 539, -1,
- 642, 10, -1, 37, -1, -1, 40, 41, -1, 651,
- 366, 367, -1, -1, 656, -1, -1, -1, -1, -1,
- -1, 55, -1, 627, -1, 381, -1, 61, 62, 63,
- -1, 40, -1, 67, 68, -1, -1, 679, 642, -1,
- -1, 75, -1, -1, -1, -1, 55, 651, 589, 83,
- -1, -1, 656, -1, 63, -1, -1, 91, 92, -1,
- -1, 70, 71, 72, -1, -1, 75, 76, -1, -1,
- -1, 713, 714, -1, 83, 84, -1, -1, -1, 88,
- 436, -1, 4, 5, 6, 7, 442, -1, -1, 445,
- 12, -1, 1, -1, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 26, -1, -1, 29, -1, 713,
- -1, -1, -1, -1, -1, -1, 38, 26, 27, -1,
- 29, 30, 31, -1, -1, -1, -1, 36, 37, 38,
- -1, 487, 41, -1, 675, -1, 492, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 55, 789, -1, -1,
- 792, -1, 61, 62, 63, -1, -1, -1, 67, 68,
- 802, -1, -1, -1, -1, -1, 75, 809, 4, -1,
- 6, 7, -1, -1, 83, 84, 12, -1, -1, 88,
- -1, -1, 91, 92, -1, -1, 828, 829, -1, -1,
- 26, 547, 548, 29, -1, -1, -1, 839, -1, -1,
- -1, -1, 38, -1, -1, 809, -1, -1, 749, -1,
- -1, -1, -1, -1, -1, 4, -1, 6, 7, -1,
- 862, 577, -1, 12, -1, 1, -1, 3, 4, 585,
- 6, 7, 8, 9, -1, 11, 12, 26, -1, -1,
- 29, -1, -1, -1, -1, -1, 888, -1, -1, 38,
- 26, 27, -1, 29, 30, 31, -1, -1, 862, -1,
- 36, 37, 38, -1, -1, 41, -1, -1, 44, -1,
- 912, -1, -1, -1, -1, -1, -1, -1, -1, 55,
- -1, -1, -1, -1, -1, 61, 62, 63, -1, 645,
- -1, 67, 68, -1, -1, -1, -1, -1, -1, 75,
- -1, -1, -1, -1, -1, -1, -1, 83, 950, -1,
- -1, 953, -1, -1, 90, 91, 92, -1, -1, 1,
- -1, 3, 4, 5, 6, 7, 8, 9, -1, 11,
- 12, 13, 688, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
- -1, -1, -1, -1, 36, 37, 38, -1, -1, 41,
- -1, 43, 44, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 55, -1, -1, -1, -1, -1, 61,
- 62, 63, -1, -1, -1, 67, 68, -1, -1, -1,
- -1, -1, -1, 75, -1, 77, -1, -1, 80, -1,
- -1, 83, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, -1, -1, -1, -1, -1, 772, 773, 774, 1,
- -1, 3, 4, 5, 6, 7, 8, 9, -1, 11,
- 12, 13, -1, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
- -1, -1, -1, -1, 36, 37, 38, -1, -1, 41,
- -1, 43, 44, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 55, -1, -1, -1, -1, -1, 61,
- 62, 63, -1, -1, -1, 67, 68, -1, -1, -1,
- -1, -1, -1, 75, -1, 77, -1, -1, 80, -1,
- -1, 83, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 1, -1, 3, 4, 5, 6, 7, 8, 9,
- -1, 11, 12, 13, -1, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
- 30, 31, -1, -1, -1, -1, 36, 37, 38, -1,
- -1, 41, -1, 43, 44, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 55, -1, -1, -1, -1,
- -1, 61, 62, 63, -1, -1, -1, 67, 68, -1,
- -1, -1, -1, -1, -1, 75, -1, 77, -1, -1,
- 80, -1, -1, 83, -1, -1, -1, -1, -1, 89,
- 90, 91, 92, 1, -1, 3, 4, 5, 6, 7,
- 8, 9, -1, 11, 12, 13, -1, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- -1, 29, 30, 31, -1, -1, -1, -1, 36, 37,
- 38, -1, -1, 41, -1, 43, 44, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 55, -1, -1,
- -1, -1, -1, 61, 62, 63, -1, -1, -1, 67,
- 68, -1, -1, -1, -1, -1, -1, 75, -1, 77,
- -1, -1, 80, -1, -1, 83, -1, -1, -1, -1,
- -1, 89, -1, 91, 92, 1, -1, 3, 4, 5,
- 6, 7, 8, 9, -1, 11, 12, 13, -1, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
- 36, 37, 38, -1, -1, 41, -1, 43, 44, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 55,
- -1, -1, -1, -1, -1, 61, 62, 63, -1, -1,
- -1, 67, 68, -1, -1, -1, -1, -1, -1, 75,
- -1, 77, -1, -1, 80, -1, -1, 83, -1, -1,
- -1, -1, -1, 89, -1, 91, 92, 1, -1, 3,
- 4, 5, 6, 7, 8, 9, -1, 11, 12, 13,
- -1, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
- -1, -1, 36, 37, 38, -1, -1, 41, -1, 43,
- 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 55, -1, -1, -1, -1, -1, 61, 62, 63,
- -1, -1, -1, 67, 68, -1, -1, -1, -1, 1,
- -1, 75, 4, 77, 6, 7, 80, -1, -1, 83,
- 12, -1, -1, -1, -1, 89, -1, 91, 92, -1,
- -1, -1, -1, -1, 26, -1, -1, 29, 30, 31,
- -1, -1, -1, -1, -1, -1, 38, 39, 40, -1,
- -1, -1, -1, -1, 46, 47, 48, -1, -1, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, -1, 67, 68, -1, -1, -1,
- -1, 73, -1, 1, 76, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, -1, -1, -1, -1, 91,
- 92, -1, -1, -1, -1, -1, -1, -1, 26, 27,
- -1, 29, 30, 31, -1, -1, -1, -1, 36, 37,
- 38, -1, -1, 41, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 55, -1, -1,
- -1, -1, -1, 61, 62, 63, -1, -1, -1, 67,
- 68, -1, -1, -1, -1, -1, -1, 75, -1, -1,
- -1, -1, -1, -1, -1, 83, 84, -1, -1, -1,
- 88, -1, -1, 91, 92, 1, -1, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
- 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
- 36, 37, 38, -1, -1, 41, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, -1, -1, 55,
- -1, -1, -1, -1, -1, 61, 62, 63, -1, -1,
- -1, 67, 68, -1, -1, -1, -1, -1, -1, 75,
- -1, -1, -1, -1, -1, -1, -1, 83, 84, -1,
- -1, -1, 88, -1, -1, 91, 92, 1, -1, 3,
- 4, 5, 6, 7, 8, 9, -1, 11, 12, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 26, 27, -1, 29, 30, 31, -1, -1,
- -1, -1, 36, 37, 38, -1, -1, 41, -1, -1,
- 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 55, -1, -1, -1, -1, -1, 61, 62, 63,
- -1, -1, -1, 67, 68, -1, -1, 1, -1, 3,
- 4, 75, 6, 7, 8, 9, -1, 11, 12, 83,
- -1, -1, -1, -1, -1, 89, -1, 91, 92, -1,
- -1, -1, 26, 27, -1, 29, 30, 31, -1, -1,
- -1, -1, 36, 37, 38, -1, -1, 41, -1, -1,
- 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 55, -1, -1, -1, -1, -1, 61, 62, 63,
- -1, -1, -1, 67, 68, -1, -1, 1, -1, 3,
- 4, 75, 6, 7, 8, 9, -1, 11, 12, 83,
- -1, -1, -1, -1, -1, -1, 90, 91, 92, -1,
- -1, -1, 26, 27, -1, 29, 30, 31, -1, -1,
- -1, -1, 36, 37, 38, -1, -1, 41, -1, -1,
- 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 55, -1, -1, -1, -1, -1, 61, 62, 63,
- -1, -1, -1, 67, 68, -1, -1, 1, -1, 3,
- 4, 75, 6, 7, 8, 9, -1, 11, 12, 83,
- -1, -1, -1, -1, -1, -1, 90, 91, 92, -1,
- -1, -1, 26, 27, -1, 29, 30, 31, -1, -1,
- -1, -1, 36, 37, 38, -1, -1, 41, -1, -1,
- 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 55, -1, -1, -1, -1, -1, 61, 62, 63,
- -1, -1, -1, 67, 68, -1, -1, 1, -1, 3,
- 4, 75, 6, 7, 8, 9, -1, 11, 12, 83,
- -1, -1, -1, -1, -1, -1, -1, 91, 92, -1,
- -1, -1, 26, 27, -1, 29, 30, 31, -1, -1,
- -1, -1, 36, 37, 38, -1, -1, 41, -1, -1,
- 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 55, -1, -1, -1, -1, -1, 61, 62, 63,
- -1, -1, -1, 67, 68, -1, -1, 1, -1, 3,
- 4, 75, 6, 7, 8, 9, -1, 11, 12, 83,
- -1, -1, -1, -1, -1, -1, -1, 91, 92, -1,
- -1, -1, 26, 27, -1, 29, 30, 31, -1, -1,
- -1, -1, 36, 37, 38, -1, -1, 41, -1, -1,
- -1, -1, -1, -1, -1, 49, -1, -1, -1, -1,
- -1, 55, -1, -1, -1, -1, -1, 61, 62, 63,
- -1, -1, -1, 67, 68, -1, -1, 1, -1, 3,
- 4, 75, 6, 7, 8, 9, -1, 11, 12, 83,
- -1, -1, -1, -1, -1, -1, -1, 91, 92, -1,
- -1, -1, 26, 27, -1, 29, 30, 31, -1, -1,
- -1, -1, 36, 37, 38, -1, -1, 41, -1, -1,
- 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 55, -1, -1, -1, -1, -1, 61, 62, 63,
- -1, -1, -1, 67, 68, -1, -1, 1, -1, 3,
- 4, 75, 6, 7, 8, 9, -1, 11, 12, 83,
- -1, -1, -1, -1, -1, -1, -1, 91, 92, -1,
- -1, -1, 26, 27, -1, 29, 30, 31, -1, -1,
- -1, -1, 36, 37, 38, -1, -1, 41, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 55, -1, -1, -1, -1, -1, 61, 62, 63,
- -1, -1, -1, 67, 68, -1, -1, 1, -1, 3,
- 4, 75, 6, 7, 8, 9, -1, 11, 12, 83,
- -1, -1, -1, -1, -1, 89, -1, 91, 92, -1,
- -1, -1, 26, 27, -1, 29, 30, 31, -1, -1,
- -1, -1, 36, 37, 38, -1, -1, 41, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 55, -1, -1, -1, -1, -1, 61, 62, 63,
- -1, -1, -1, 67, 68, -1, -1, 1, -1, 3,
- 4, 75, 6, 7, 8, 9, -1, 11, 12, 83,
- -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
- -1, -1, 26, 27, -1, 29, 30, 31, -1, -1,
- -1, -1, 36, 37, 38, -1, -1, 41, -1, -1,
- -1, 1, -1, 3, 4, 5, 6, 7, -1, -1,
- -1, 55, 12, -1, -1, -1, -1, 61, 62, 63,
- -1, -1, -1, 67, 68, -1, 26, -1, -1, 29,
- -1, 75, -1, 33, 34, 35, -1, 37, 38, 83,
- 40, 41, -1, -1, -1, -1, -1, 91, 92, 49,
- 3, -1, -1, -1, -1, 55, -1, 10, -1, -1,
- -1, -1, -1, 63, -1, -1, -1, 1, -1, 3,
- 4, 5, 6, 7, -1, 75, -1, -1, 12, -1,
- -1, -1, -1, 83, 37, -1, -1, 40, 41, 89,
- 90, 91, 26, -1, -1, 29, -1, -1, -1, 33,
- 34, 35, 55, 37, 38, -1, 40, 41, -1, -1,
- 63, -1, -1, -1, 1, 49, 3, 4, 5, 6,
- 7, 55, 75, -1, -1, 12, -1, -1, -1, 63,
- 83, 84, -1, -1, -1, 88, -1, -1, 91, 26,
- -1, 75, 29, -1, -1, -1, 33, 34, 35, 83,
- 37, 38, -1, 40, 41, 89, 90, 91, -1, -1,
- -1, 1, 49, 3, 4, 5, 6, 7, 55, -1,
- -1, -1, 12, -1, -1, -1, 63, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 26, -1, 75, 29,
- -1, -1, -1, 33, 34, 35, 83, 37, 38, -1,
- 40, 41, 89, 90, 91, -1, -1, -1, 1, 49,
- 3, 4, 5, 6, 7, 55, -1, -1, -1, 12,
- -1, -1, -1, 63, -1, -1, -1, -1, -1, -1,
- -1, -1, 25, 26, -1, 75, 29, -1, -1, 32,
- -1, -1, -1, 83, 37, 38, -1, 40, 41, 89,
- 90, 91, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 55, -1, -1, -1, -1, -1, -1, 1,
- 63, 3, 4, 5, 6, 7, -1, -1, -1, -1,
- 12, -1, 75, -1, -1, -1, -1, -1, -1, -1,
- 83, -1, 85, 86, 26, -1, 89, 29, 91, -1,
- -1, 33, 34, 35, -1, 37, 38, -1, 40, 41,
- -1, -1, -1, -1, -1, -1, 1, 49, 3, 4,
- 5, 6, 7, 55, -1, -1, -1, 12, -1, -1,
- -1, 63, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 26, -1, 75, 29, -1, -1, -1, 33, 34,
- 35, 83, 37, 38, -1, 40, 41, -1, 90, 91,
- -1, -1, -1, 1, 49, 3, 4, 5, 6, 7,
- 55, -1, -1, -1, 12, -1, -1, -1, 63, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 26, -1,
- 75, 29, -1, -1, -1, 33, 34, 35, 83, 37,
- 38, -1, 40, 41, -1, 90, 91, -1, -1, -1,
- 1, 49, 3, 4, 5, 6, 7, 55, -1, -1,
- -1, 12, -1, -1, -1, 63, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 26, -1, 75, 29, -1,
- -1, -1, 33, 34, 35, 83, 37, 38, -1, 40,
- 41, -1, 90, 91, -1, -1, -1, 3, 49, -1,
- -1, 7, -1, -1, 55, 1, -1, 3, 4, 5,
- 6, 7, 63, -1, -1, -1, 12, -1, -1, -1,
- -1, -1, -1, -1, 75, -1, -1, -1, -1, -1,
- 26, 37, 83, 29, 40, 41, -1, -1, -1, 90,
- 91, 37, 38, -1, 40, 41, -1, -1, 44, 55,
- -1, -1, -1, -1, -1, -1, -1, 63, -1, 55,
- -1, -1, -1, -1, 70, 71, 72, 63, -1, 75,
- 76, -1, -1, -1, -1, -1, -1, 83, -1, 75,
- -1, -1, -1, -1, -1, 91, 3, 83, -1, 85,
- -1, 8, 9, 89, 11, 91, 13, -1, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, -1,
- 27, -1, -1, 30, 31, -1, -1, -1, -1, 36,
- 37, -1, -1, -1, 41, -1, 43, 44, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 55, -1,
- -1, -1, -1, -1, 61, 62, 63, -1, -1, 3,
- 67, 68, -1, -1, 8, 9, -1, 11, 75, -1,
- 77, -1, -1, 80, -1, -1, 83, -1, -1, -1,
- -1, -1, 89, 27, 91, 92, 30, 31, -1, -1,
- -1, -1, 36, 37, -1, -1, -1, 41, -1, -1,
- -1, -1, 3, -1, -1, -1, -1, 8, 9, -1,
- 11, 55, -1, -1, -1, -1, -1, 61, 62, 63,
- -1, -1, -1, 67, 68, -1, 27, -1, -1, 30,
- 31, 75, -1, -1, -1, 36, 37, -1, -1, 83,
- 41, -1, -1, -1, 88, 3, -1, 91, 92, -1,
- 8, 9, -1, 11, 55, -1, -1, -1, -1, -1,
- 61, 62, 63, -1, -1, -1, 67, 68, -1, 27,
- -1, -1, 30, 31, 75, 76, -1, -1, 36, 37,
- -1, -1, 83, 41, -1, -1, -1, -1, 3, -1,
- 91, 92, -1, 8, 9, -1, 11, 55, -1, -1,
- -1, -1, -1, 61, 62, 63, -1, -1, -1, 67,
- 68, -1, 27, -1, -1, 30, 31, 75, -1, -1,
- -1, 36, 37, -1, -1, 83, 41, -1, -1, 44,
- -1, 89, -1, 91, 92, -1, -1, 3, -1, -1,
- 55, -1, 8, 9, -1, 11, 61, 62, 63, -1,
- -1, -1, 67, 68, -1, -1, -1, -1, -1, -1,
- 75, 27, -1, -1, 30, 31, -1, -1, 83, -1,
- 36, 37, -1, -1, -1, 41, 91, 92, -1, -1,
- 3, -1, -1, -1, -1, 8, 9, -1, 11, 55,
- -1, -1, -1, -1, -1, 61, 62, 63, -1, -1,
- -1, 67, 68, -1, 27, -1, -1, 30, 31, 75,
- -1, -1, -1, 36, 37, -1, -1, 83, 41, -1,
- -1, -1, -1, 3, -1, 91, 92, -1, 8, 9,
- -1, 11, 55, -1, -1, -1, -1, -1, 61, 62,
- 63, -1, -1, -1, 67, 68, -1, 27, -1, -1,
- 30, 31, 75, -1, -1, -1, 36, 37, -1, -1,
- 83, 41, -1, 3, 4, 5, 6, 7, 91, 92,
- -1, -1, 12, -1, -1, 55, -1, -1, -1, -1,
- -1, 61, 62, 63, -1, -1, 26, 67, 68, 29,
- 3, 4, 5, 6, 7, 75, -1, 37, 38, 12,
- 40, 41, -1, 83, -1, -1, -1, -1, -1, -1,
- -1, 91, 92, 26, -1, 55, 29, -1, -1, -1,
- -1, -1, -1, 63, 37, 38, -1, 40, 41, -1,
- 70, 71, 72, -1, -1, 75, -1, 3, 4, 5,
- 6, 7, 55, 83, -1, -1, 12, -1, -1, 89,
- 63, 91, -1, -1, -1, -1, -1, 70, 71, 72,
- 26, -1, 75, 29, 3, 4, 5, 6, 7, -1,
- 83, 37, 38, 12, 40, 41, 89, -1, 91, -1,
- -1, -1, -1, -1, -1, -1, -1, 26, -1, 55,
- 29, -1, -1, -1, -1, -1, -1, 63, 37, 38,
- -1, 40, 41, -1, 70, 71, 72, -1, -1, 75,
- 76, 3, 4, 5, 6, 7, 55, 83, -1, -1,
- 12, 3, -1, -1, 63, 91, -1, -1, 10, -1,
- -1, -1, -1, -1, 26, -1, 75, 29, -1, -1,
- -1, -1, -1, -1, 83, 37, 38, -1, 40, 41,
- -1, -1, 91, -1, -1, 37, -1, -1, 40, 41,
- -1, -1, -1, 55, -1, -1, -1, -1, -1, -1,
- -1, 63, -1, 55, 3, 4, -1, -1, -1, -1,
- -1, 63, -1, 75, 3, 4, -1, -1, 70, 71,
- 72, 83, -1, 75, 76, -1, -1, -1, -1, 91,
- -1, 83, 84, -1, -1, -1, 88, -1, 37, 91,
- -1, 40, 41, -1, 43, -1, -1, -1, 37, -1,
- 49, 40, 41, -1, 43, -1, 55, -1, -1, -1,
- 49, 3, 4, -1, 63, 7, 55, -1, -1, -1,
- -1, 70, 71, 72, 63, -1, 75, -1, -1, -1,
- -1, 70, 71, 72, 83, -1, 75, -1, 3, 4,
- -1, -1, 91, -1, 83, 37, -1, -1, 40, 41,
- -1, -1, 91, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 55, -1, -1, -1, -1, -1, -1,
- -1, 63, 37, -1, -1, 40, 41, -1, 70, 71,
- 72, -1, -1, 75, 76, 3, 4, -1, -1, -1,
- 55, 83, -1, -1, -1, -1, -1, -1, 63, 91,
- -1, -1, -1, 1, -1, 70, 71, 72, -1, -1,
- 75, -1, -1, -1, -1, -1, -1, -1, 83, 37,
- -1, -1, 40, 41, 89, 23, 91, 25, -1, -1,
- 28, -1, 3, 4, -1, -1, -1, 55, 3, -1,
- -1, -1, 40, -1, -1, 63, 44, 45, -1, 47,
- -1, 49, 70, 71, 72, -1, -1, 75, -1, -1,
- -1, -1, -1, -1, -1, 83, 37, -1, -1, 40,
- 41, 89, 37, 91, -1, 40, 41, 75, 76, -1,
- 78, -1, -1, -1, 55, -1, -1, -1, -1, -1,
- 55, 89, 63, 3, 4, -1, 6, 7, 63, 70,
- 71, 72, 12, -1, 75, 70, 71, 72, -1, -1,
- 75, 76, 83, -1, -1, -1, 26, -1, 83, 29,
- 91, 4, 5, 6, 7, -1, 91, -1, 38, 12,
- 40, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 26, -1, 55, 29, -1, -1, -1,
- -1, -1, -1, 63, -1, 38, -1, -1, -1, -1,
- 70, 71, 72, -1, -1, 75, 76, -1, -1, -1,
- -1, -1, 55, 83, -1, -1, -1, -1, -1, -1,
- 63, -1, -1, -1, -1, -1, -1, 70, 71, 72,
- -1, -1, 75, 46, 47, 48, -1, -1, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 45, 46, 47, 48, -1, -1, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, -1, -1, 89, 90, 46, 47,
- 48, -1, -1, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 48, -1,
- -1, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65
- };
- #define YYPURE 1
-
- #line 2 "bison.simple"
-
- /* Skeleton output parser for bison,
- copyright (C) 1984 Bob Corbett and Richard Stallman
-
- NO WARRANTY
-
- BECAUSE THIS PROGRAM IS LICENSED FREE OF CHARGE, WE PROVIDE ABSOLUTELY
- NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT
- WHEN OTHERWISE STATED IN WRITING, FREE SOFTWARE FOUNDATION, INC,
- RICHARD M. STALLMAN AND/OR OTHER PARTIES PROVIDE THIS PROGRAM "AS IS"
- WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY
- AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
- DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
- CORRECTION.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL RICHARD M.
- STALLMAN, THE FREE SOFTWARE FOUNDATION, INC., AND/OR ANY OTHER PARTY
- WHO MAY MODIFY AND REDISTRIBUTE THIS PROGRAM AS PERMITTED BELOW, BE
- LIABLE TO YOU FOR DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR
- OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
- USE OR INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
- DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR
- A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS) THIS
- PROGRAM, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
- DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
-
- GENERAL PUBLIC LICENSE TO COPY
-
- 1. You may copy and distribute verbatim copies of this source file
- as you receive it, in any medium, provided that you conspicuously and
- appropriately publish on each copy a valid copyright notice "Copyright
- (C) 1985 Free Software Foundation, Inc."; and include following the
- copyright notice a verbatim copy of the above disclaimer of warranty
- and of this License. You may charge a distribution fee for the
- physical act of transferring a copy.
-
- 2. You may modify your copy or copies of this source file or
- any portion of it, and copy and distribute such modifications under
- the terms of Paragraph 1 above, provided that you also do the following:
-
- a) cause the modified files to carry prominent notices stating
- that you changed the files and the date of any change; and
-
- b) cause the whole of any work that you distribute or publish,
- that in whole or in part contains or is a derivative of this
- program or any part thereof, to be licensed at no charge to all
- third parties on terms identical to those contained in this
- License Agreement (except that you may choose to grant more extensive
- warranty protection to some or all third parties, at your option).
-
- c) You may charge a distribution fee for the physical act of
- transferring a copy, and you may at your option offer warranty
- protection in exchange for a fee.
-
- Mere aggregation of another unrelated program with this program (or its
- derivative) on a volume of a storage or distribution medium does not bring
- the other program under the scope of these terms.
-
- 3. You may copy and distribute this program (or a portion or derivative
- of it, under Paragraph 2) in object code or executable form under the terms
- of Paragraphs 1 and 2 above provided that you also do one of the following:
-
- a) accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of
- Paragraphs 1 and 2 above; or,
-
- b) accompany it with a written offer, valid for at least three
- years, to give any third party free (except for a nominal
- shipping charge) a complete machine-readable copy of the
- corresponding source code, to be distributed under the terms of
- Paragraphs 1 and 2 above; or,
-
- c) accompany it with the information you received as to where the
- corresponding source code may be obtained. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form alone.)
-
- For an executable file, complete source code means all the source code for
- all modules it contains; but, as a special exception, it need not include
- source code for modules which are standard libraries that accompany the
- operating system on which the executable file runs.
-
- 4. You may not copy, sublicense, distribute or transfer this program
- except as expressly provided under this License Agreement. Any attempt
- otherwise to copy, sublicense, distribute or transfer this program is void and
- your rights to use the program under this License agreement shall be
- automatically terminated. However, parties who have received computer
- software programs from you with this License Agreement will not have
- their licenses terminated so long as such parties remain in full compliance.
-
- 5. If you wish to incorporate parts of this program into other free
- programs whose distribution conditions are different, write to the Free
- Software Foundation at 675 Mass Ave, Cambridge, MA 02139. We have not yet
- worked out a simple rule that can be stated here, but we will often permit
- this. We will be guided by the two goals of preserving the free status of
- all derivatives of our free software and of promoting the sharing and reuse of
- software.
-
-
- In other words, you are welcome to use, share and improve this program.
- You are forbidden to forbid anyone else to use, share and improve
- what you give them. Help stamp out software-hoarding! */
-
- /* This is the parser code that is written into each bison parser
- when the %semantic_parser declaration is not specified in the grammar.
- It was written by Richard Stallman by simplifying the hairy parser
- used when %semantic_parser is specified. */
-
- /* Note: there must be only one dollar sign in this file.
- It is replaced by the list of actions, each action
- as one case of the switch. */
-
- #define yyerrok (yyerrstatus = 0)
- #define yyclearin (yychar = YYEMPTY)
- #define YYEMPTY -2
- #define YYEOF 0
- #define YYFAIL goto yyerrlab;
-
- #define YYTERROR 1
-
- #ifndef YYIMPURE
- #define YYLEX yylex()
- #endif
-
- #ifndef YYPURE
- #define YYLEX yylex(&yylval, &yylloc)
- #endif
-
- /* If nonreentrant, generate the variables here */
-
- #ifndef YYIMPURE
-
- int yychar; /* the lookahead symbol */
- YYSTYPE yylval; /* the semantic value of the */
- /* lookahead symbol */
-
- YYLTYPE yylloc; /* location data for the lookahead */
- /* symbol */
-
- int yynerr; /* number of parse errors so far */
-
- #ifdef YYDEBUG
- int yydebug = 0; /* nonzero means print parse trace */
- #endif
-
- #endif /* YYIMPURE */
-
-
- /* YYMAXDEPTH indicates the initial size of the parser's stacks */
-
- #ifndef YYMAXDEPTH
- #define YYMAXDEPTH 200
- #endif
-
- /* YYMAXLIMIT is the maximum size the stacks can grow to
- (effective only if the built-in stack extension method is used). */
-
- #ifndef YYMAXLIMIT
- #define YYMAXLIMIT 10000
- #endif
-
-
- #line 167 "bison.simple"
- int
- yyparse()
- {
- register int yystate;
- register int yyn;
- register short *yyssp;
- register YYSTYPE *yyvsp;
- YYLTYPE *yylsp;
- int yyerrstatus; /* number of tokens to shift before error messages enabled */
- int yychar1; /* lookahead token as an internal (translated) token number */
-
- short yyssa[YYMAXDEPTH]; /* the state stack */
- YYSTYPE yyvsa[YYMAXDEPTH]; /* the semantic value stack */
- YYLTYPE yylsa[YYMAXDEPTH]; /* the location stack */
-
- short *yyss = yyssa; /* refer to the stacks thru separate pointers */
- YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
- YYLTYPE *yyls = yylsa;
-
- int yymaxdepth = YYMAXDEPTH;
-
- #ifndef YYPURE
- int yychar;
- YYSTYPE yylval;
- YYLTYPE yylloc;
- #endif
-
- #ifdef YYDEBUG
- extern int yydebug;
- #endif
-
-
- YYSTYPE yyval; /* the variable used to return */
- /* semantic values from the action */
- /* routines */
-
- int yylen;
-
- #ifdef YYDEBUG
- if (yydebug)
- fprintf(stderr, "Starting parse\n");
- #endif
-
- yystate = 0;
- yyerrstatus = 0;
- yynerr = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- so that they stay on the same level as the state stack. */
-
- yyssp = yyss - 1;
- yyvsp = yyvs;
- yylsp = yyls;
-
- /* Push a new state, which is found in yystate . */
- /* In all cases, when you get here, the value and location stacks
- have just been pushed. so pushing a state here evens the stacks. */
- yynewstate:
-
- *++yyssp = yystate;
-
- if (yyssp >= yyss + yymaxdepth - 1)
- {
- /* Give user a chance to reallocate the stack */
- /* Use copies of these so that the &'s don't force the real ones into memory. */
- YYSTYPE *yyvs1 = yyvs;
- YYLTYPE *yyls1 = yyls;
- short *yyss1 = yyss;
-
- /* Get the current used size of the three stacks, in elements. */
- int size = yyssp - yyss + 1;
-
- #ifdef yyoverflow
- /* Each stack pointer address is followed by the size of
- the data in use in that stack, in bytes. */
- yyoverflow("parser stack overflow",
- &yyss1, size * sizeof (*yyssp),
- &yyvs1, size * sizeof (*yyvsp),
- &yyls1, size * sizeof (*yylsp),
- &yymaxdepth);
-
- yyss = yyss1; yyvs = yyvs1; yyls = yyls1;
- #else /* no yyoverflow */
- /* Extend the stack our own way. */
- if (yymaxdepth >= YYMAXLIMIT)
- yyerror("parser stack overflow");
- yymaxdepth *= 2;
- if (yymaxdepth > YYMAXLIMIT)
- yymaxdepth = YYMAXLIMIT;
- yyss = (short *) alloca (yymaxdepth * sizeof (*yyssp));
- bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
- yyvs = (YYSTYPE *) alloca (yymaxdepth * sizeof (*yyvsp));
- bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
- #ifdef YYLSP_NEEDED
- yyls = (YYLTYPE *) alloca (yymaxdepth * sizeof (*yylsp));
- bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
- #endif
- #endif /* no yyoverflow */
-
- yyssp = yyss + size - 1;
- yyvsp = yyvs + size - 1;
- #ifdef YYLSP_NEEDED
- yylsp = yyls + size - 1;
- #endif
-
- #ifdef YYDEBUG
- if (yydebug)
- fprintf(stderr, "Stack size increased to %d\n", yymaxdepth);
- #endif
-
- if (yyssp >= yyss + yymaxdepth - 1)
- YYABORT;
- }
-
- #ifdef YYDEBUG
- if (yydebug)
- fprintf(stderr, "Entering state %d\n", yystate);
- #endif
-
- /* Do appropriate processing given the current state. */
- /* Read a lookahead token if we need one and don't already have one. */
- yyresume:
-
- /* First try to decide what to do without reference to lookahead token. */
-
- yyn = yypact[yystate];
- if (yyn == YYFLAG)
- goto yydefault;
-
- /* Not known => get a lookahead token if don't already have one. */
-
- /* yychar is either YYEMPTY or YYEOF
- or a valid token in external form. */
-
- if (yychar == YYEMPTY)
- {
- #ifdef YYDEBUG
- if (yydebug)
- fprintf(stderr, "Reading a token: ");
- #endif
- yychar = YYLEX;
- }
-
- /* Convert token to internal form (in yychar1) for indexing tables with */
-
- if (yychar <= 0) /* This means end of input. */
- {
- yychar1 = 0;
- yychar = YYEOF; /* Don't call YYLEX any more */
-
- #ifdef YYDEBUG
- if (yydebug)
- fprintf(stderr, "Now at end of input.\n");
- #endif
- }
- else
- {
- yychar1 = YYTRANSLATE(yychar);
-
- #ifdef YYDEBUG
- if (yydebug)
- fprintf(stderr, "Next token is %d (%s)\n", yychar, yytname[yychar1]);
- #endif
- }
-
- yyn += yychar1;
- if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
- goto yydefault;
-
- yyn = yytable[yyn];
-
- /* yyn is what to do for this token type in this state.
- Negative => reduce, -yyn is rule number.
- Positive => shift, yyn is new state.
- New state is final state => don't bother to shift,
- just return success.
- 0, or most negative number => error. */
-
- if (yyn < 0)
- {
- if (yyn == YYFLAG)
- goto yyerrlab;
- yyn = -yyn;
- goto yyreduce;
- }
- else if (yyn == 0)
- goto yyerrlab;
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- /* Shift the lookahead token. */
-
- #ifdef YYDEBUG
- if (yydebug)
- fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
- #endif
-
- /* Discard the token being shifted unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
-
- *++yyvsp = yylval;
- #ifdef YYLSP_NEEDED
- *++yylsp = yylloc;
- #endif
-
- /* count tokens shifted since error; after three, turn off error status. */
- if (yyerrstatus) yyerrstatus--;
-
- yystate = yyn;
- goto yynewstate;
-
- /* Do the default action for the current state. */
- yydefault:
-
- yyn = yydefact[yystate];
- if (yyn == 0)
- goto yyerrlab;
-
- /* Do a reduction. yyn is the number of a rule to reduce with. */
- yyreduce:
- yylen = yyr2[yyn];
- yyval = yyvsp[1-yylen]; /* implement default value of the action */
-
- #ifdef YYDEBUG
- if (yydebug)
- {
- if (yylen == 1)
- fprintf (stderr, "Reducing 1 value via line %d, ",
- yyrline[yyn]);
- else
- fprintf (stderr, "Reducing %d values via line %d, ",
- yylen, yyrline[yyn]);
- }
- #endif
-
-
- switch (yyn) {
-
- case 2:
- #line 224 "cplus-parse.y"
- { finish_file (); ;
- break;}
- case 3:
- #line 232 "cplus-parse.y"
- {yyval.ttype = NULL_TREE; ;
- break;}
- case 5:
- #line 233 "cplus-parse.y"
- {yyval.ttype = NULL_TREE; ;
- break;}
- case 7:
- #line 238 "cplus-parse.y"
- { if (pending_inlines) do_pending_inlines (); ;
- break;}
- case 8:
- #line 240 "cplus-parse.y"
- { if (pending_inlines) do_pending_inlines (); ;
- break;}
- case 10:
- #line 243 "cplus-parse.y"
- { if (pedantic)
- warning ("ANSI C forbids use of `asm' keyword");
- if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
- assemble_asm (yyvsp[-2].ttype); ;
- break;}
- case 11:
- #line 248 "cplus-parse.y"
- { pop_lang_context (); ;
- break;}
- case 12:
- #line 250 "cplus-parse.y"
- { pop_lang_context (); ;
- break;}
- case 13:
- #line 252 "cplus-parse.y"
- { if (pending_inlines) do_pending_inlines ();
- pop_lang_context (); ;
- break;}
- case 14:
- #line 255 "cplus-parse.y"
- { if (pending_inlines) do_pending_inlines ();
- pop_lang_context (); ;
- break;}
- case 15:
- #line 261 "cplus-parse.y"
- { push_lang_context (yyvsp[0].ttype); ;
- break;}
- case 17:
- #line 268 "cplus-parse.y"
- { declare_overloaded (yyvsp[0].ttype); ;
- break;}
- case 18:
- #line 270 "cplus-parse.y"
- { declare_overloaded (yyvsp[0].ttype); ;
- break;}
- case 19:
- #line 274 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 20:
- #line 279 "cplus-parse.y"
- { if (pedantic)
- error ("ANSI C forbids data definition lacking type or storage class");
- else if (! flag_traditional)
- warning ("data definition lacks type or storage class"); ;
- break;}
- case 21:
- #line 284 "cplus-parse.y"
- {;
- break;}
- case 22:
- #line 287 "cplus-parse.y"
- { tree d;
- d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
- finish_decl (d, NULL_TREE, NULL_TREE);
- ;
- break;}
- case 23:
- #line 292 "cplus-parse.y"
- {
- end_exception_decls ();
- note_got_semicolon (yyvsp[-2].ttype);
- ;
- break;}
- case 24:
- #line 298 "cplus-parse.y"
- { tree d;
- d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
- finish_decl (d, NULL_TREE, NULL_TREE);
- end_exception_decls ();
- note_got_semicolon (yyvsp[-2].ttype);
- ;
- break;}
- case 25:
- #line 305 "cplus-parse.y"
- { error ("empty declaration"); ;
- break;}
- case 26:
- #line 307 "cplus-parse.y"
- {
- shadow_tag (yyvsp[-1].ttype);
- note_got_semicolon (yyvsp[-1].ttype);
- ;
- break;}
- case 30:
- #line 318 "cplus-parse.y"
- {
- finish_function (lineno, 1);
- /* finish_function performs these three statements:
-
- expand_end_bindings (getdecls (), 1, 0);
- poplevel (1, 1, 0);
-
- expand_end_bindings (0, 0, 0);
- poplevel (0, 0, 1);
- */
- ;
- break;}
- case 31:
- #line 330 "cplus-parse.y"
- {
- finish_function (lineno, 1);
- /* finish_function performs these three statements:
-
- expand_end_bindings (getdecls (), 1, 0);
- poplevel (1, 1, 0);
-
- expand_end_bindings (0, 0, 0);
- poplevel (0, 0, 1);
- */
- ;
- break;}
- case 32:
- #line 342 "cplus-parse.y"
- { finish_function (lineno, 0); ;
- break;}
- case 33:
- #line 344 "cplus-parse.y"
- { finish_function (lineno, 0); ;
- break;}
- case 34:
- #line 346 "cplus-parse.y"
- { finish_function (lineno, 0); ;
- break;}
- case 35:
- #line 348 "cplus-parse.y"
- {;
- break;}
- case 36:
- #line 350 "cplus-parse.y"
- {;
- break;}
- case 37:
- #line 352 "cplus-parse.y"
- {;
- break;}
- case 38:
- #line 357 "cplus-parse.y"
- { if (! start_function (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
- YYERROR;
- reinit_parse_for_function (); ;
- break;}
- case 39:
- #line 361 "cplus-parse.y"
- { if (! start_function (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
- YYERROR;
- reinit_parse_for_function (); ;
- break;}
- case 40:
- #line 365 "cplus-parse.y"
- { if (! start_function (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
- YYERROR;
- reinit_parse_for_function (); ;
- break;}
- case 41:
- #line 369 "cplus-parse.y"
- { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
- YYERROR;
- reinit_parse_for_function (); ;
- break;}
- case 42:
- #line 373 "cplus-parse.y"
- { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
- YYERROR;
- reinit_parse_for_function (); ;
- break;}
- case 43:
- #line 377 "cplus-parse.y"
- { start_function (NULL_TREE, yyvsp[0].ttype, NULL_TREE, 1);
- reinit_parse_for_function (); ;
- break;}
- case 44:
- #line 384 "cplus-parse.y"
- {
- tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyvsp[-5].ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
- yyval.ttype = start_method (TREE_CHAIN (yyvsp[-5].ttype), decl, yyvsp[0].ttype);
- if (! yyval.ttype)
- YYERROR;
- if (yychar == YYEMPTY)
- yychar = YYLEX;
- reinit_parse_for_method (yychar, yyval.ttype); ;
- break;}
- case 45:
- #line 393 "cplus-parse.y"
- {
- tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyvsp[-3].ttype), empty_parms (), yyvsp[-1].ttype);
- yyval.ttype = start_method (TREE_CHAIN (yyvsp[-3].ttype), decl, yyvsp[0].ttype);
- if (! yyval.ttype)
- YYERROR;
- if (yychar == YYEMPTY)
- yychar = YYLEX;
- reinit_parse_for_method (yychar, yyval.ttype); ;
- break;}
- case 46:
- #line 402 "cplus-parse.y"
- { yyval.ttype = start_method (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
- if (! yyval.ttype)
- YYERROR;
- if (yychar == YYEMPTY)
- yychar = YYLEX;
- reinit_parse_for_method (yychar, yyval.ttype); ;
- break;}
- case 47:
- #line 409 "cplus-parse.y"
- {
- tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyvsp[-5].ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
- yyval.ttype = start_method (TREE_CHAIN (yyvsp[-5].ttype), decl, yyvsp[0].ttype);
- if (! yyval.ttype)
- YYERROR;
- if (yychar == YYEMPTY)
- yychar = YYLEX;
- reinit_parse_for_method (yychar, yyval.ttype); ;
- break;}
- case 48:
- #line 418 "cplus-parse.y"
- {
- tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyvsp[-3].ttype), empty_parms (), yyvsp[-1].ttype);
- yyval.ttype = start_method (TREE_CHAIN (yyvsp[-3].ttype), decl, yyvsp[0].ttype);
- if (! yyval.ttype)
- YYERROR;
- if (yychar == YYEMPTY)
- yychar = YYLEX;
- reinit_parse_for_method (yychar, yyval.ttype); ;
- break;}
- case 49:
- #line 427 "cplus-parse.y"
- { yyval.ttype = start_method (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
- if (! yyval.ttype)
- YYERROR;
- if (yychar == YYEMPTY)
- yychar = YYLEX;
- reinit_parse_for_method (yychar, yyval.ttype); ;
- break;}
- case 50:
- #line 434 "cplus-parse.y"
- { yyval.ttype = start_method (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
- if (! yyval.ttype)
- YYERROR;
- if (yychar == YYEMPTY)
- yychar = YYLEX;
- reinit_parse_for_method (yychar, yyval.ttype); ;
- break;}
- case 51:
- #line 443 "cplus-parse.y"
- {
- if (! current_function_parms_stored)
- store_parm_decls ();
- yyval.ttype = yyvsp[0].ttype;
- ;
- break;}
- case 52:
- #line 451 "cplus-parse.y"
- {
- extern tree value_identifier;
- tree result;
-
- result = DECL_RESULT (current_function_decl);
- if (DECL_NAME (result) == value_identifier)
- DECL_NAME (result) = yyvsp[-1].ttype;
- else
- error ("return identifier `%s' already in place",
- IDENTIFIER_POINTER (DECL_NAME (result)));
- store_return_init (yyvsp[0].ttype);
- ;
- break;}
- case 53:
- #line 464 "cplus-parse.y"
- {
- extern tree value_identifier;
- tree result;
-
- result = DECL_RESULT (current_function_decl);
- if (DECL_NAME (result) == value_identifier)
- DECL_NAME (result) = yyvsp[-3].ttype;
- else
- error ("return identifier `%s' already in place",
- IDENTIFIER_POINTER (DECL_NAME (result)));
- store_return_init (yyvsp[-1].ttype);
- ;
- break;}
- case 54:
- #line 477 "cplus-parse.y"
- {
- extern tree value_identifier;
- tree result;
-
- result = DECL_RESULT (current_function_decl);
- if (DECL_NAME (result) == value_identifier)
- DECL_NAME (result) = yyvsp[-1].ttype;
- else
- error ("return identifier `%s' already in place",
- IDENTIFIER_POINTER (DECL_NAME (result)));
- store_return_init (NULL_TREE);
- ;
- break;}
- case 55:
- #line 493 "cplus-parse.y"
- { if (yyvsp[0].itype == 0)
- error ("no base initializers given following ':'");
- setup_vtbl_ptr (); ;
- break;}
- case 56:
- #line 500 "cplus-parse.y"
- {
- int preserve = (current_class_type
- && TYPE_USES_VIRTUAL_BASECLASSES (current_class_type));
- preserve = 0; /* "in charge" arg means we no longer
- need this hack. */
- if (! current_function_parms_stored)
- store_parm_decls ();
- else if (preserve)
- preserve_data ();
-
- /* Flag that we are processing base and member initializers. */
- current_vtable_decl = error_mark_node;
-
- if (DECL_CONSTRUCTOR_P (current_function_decl))
- {
- /* Make a contour for the initializer list. */
- pushlevel (0);
- clear_last_expr ();
- expand_start_bindings (0);
- }
- else if (current_class_type == NULL_TREE)
- error ("base initializers not allowed for non-member functions");
- else if (! DECL_CONSTRUCTOR_P (current_function_decl))
- error ("only constructors take base initializers");
- ;
- break;}
- case 57:
- #line 529 "cplus-parse.y"
- { yyval.itype = 0; ;
- break;}
- case 58:
- #line 531 "cplus-parse.y"
- { yyval.itype = 1; ;
- break;}
- case 61:
- #line 539 "cplus-parse.y"
- {
- if (current_class_name && pedantic)
- warning ("old style base class initialization; use `%s (...)'",
- IDENTIFIER_POINTER (current_class_name));
- expand_member_init (C_C_D, NULL_TREE, yyvsp[-1].ttype);
- ;
- break;}
- case 62:
- #line 546 "cplus-parse.y"
- {
- if (current_class_name && pedantic)
- warning ("old style base class initialization; use `%s (...)'",
- IDENTIFIER_POINTER (current_class_name));
- expand_member_init (C_C_D, NULL_TREE, void_type_node);
- ;
- break;}
- case 63:
- #line 553 "cplus-parse.y"
- {
- expand_member_init (C_C_D, yyvsp[-3].ttype, yyvsp[-1].ttype);
- ;
- break;}
- case 64:
- #line 557 "cplus-parse.y"
- { expand_member_init (C_C_D, yyvsp[-1].ttype, void_type_node); ;
- break;}
- case 65:
- #line 559 "cplus-parse.y"
- {
- tree base, basetype;
- tree scopes = yyvsp[-4].ttype;
-
- if (TREE_CODE (scopes) == SCOPE_REF)
- /* just a pain to do this right now. */
- abort ();
-
- if (current_class_type == NULL_TREE
- || ! is_aggr_typedef (scopes, 1))
- break;
- basetype = get_base_type (TREE_TYPE (TREE_TYPE (scopes)),
- current_class_type, 1);
- if (basetype == error_mark_node)
- break;
- if (basetype == 0)
- {
- error_not_base_type (TREE_TYPE (TREE_TYPE (scopes)), current_class_type);
- break;
- }
-
- base = convert_pointer_to (basetype, current_class_decl);
- expand_member_init (build_indirect_ref (base), yyvsp[-3].ttype, yyvsp[-1].ttype);
- ;
- break;}
- case 66:
- #line 584 "cplus-parse.y"
- {
- tree basetype, base;
- tree scopes = yyvsp[-2].ttype;
- if (TREE_CODE (scopes) == SCOPE_REF)
- /* just a pain to do this right now. */
- abort ();
-
- if (current_class_type == NULL_TREE
- || ! is_aggr_typedef (scopes, 1))
- break;
- basetype = get_base_type (TREE_TYPE (TREE_TYPE (scopes)),
- current_class_type, 1);
- if (basetype == error_mark_node)
- break;
- if (basetype == 0)
- {
- error_not_base_type (TREE_TYPE (TREE_TYPE (scopes)), current_class_type);
- break;
- }
-
- base = convert_pointer_to (basetype, current_class_decl);
- expand_member_init (build_indirect_ref (base), yyvsp[-1].ttype, void_type_node);
- ;
- break;}
- case 71:
- #line 618 "cplus-parse.y"
- { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
- break;}
- case 72:
- #line 620 "cplus-parse.y"
- { yyval.ttype = hack_operator (yyvsp[0].ttype);
- if (yyval.ttype == error_mark_node)
- yyval.ttype = get_identifier ("<missing operator>"); ;
- break;}
- case 73:
- #line 624 "cplus-parse.y"
- { yyval.ttype = hack_wrapper (yyvsp[-1].itype, NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 74:
- #line 626 "cplus-parse.y"
- { yyval.ttype = hack_wrapper (yyvsp[-1].itype, NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 75:
- #line 628 "cplus-parse.y"
- { yyval.ttype = hack_wrapper (yyvsp[-1].itype, NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 76:
- #line 630 "cplus-parse.y"
- { yyval.ttype = hack_wrapper (yyvsp[-2].itype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 77:
- #line 632 "cplus-parse.y"
- { yyval.ttype = hack_wrapper (yyvsp[-2].itype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 78:
- #line 636 "cplus-parse.y"
- { yyval.itype = 0; ;
- break;}
- case 79:
- #line 638 "cplus-parse.y"
- { yyval.itype = 1; ;
- break;}
- case 80:
- #line 640 "cplus-parse.y"
- { yyval.itype = 2; ;
- break;}
- case 81:
- #line 644 "cplus-parse.y"
- { yyval.code = NEGATE_EXPR; ;
- break;}
- case 82:
- #line 646 "cplus-parse.y"
- { yyval.code = CONVERT_EXPR; ;
- break;}
- case 83:
- #line 648 "cplus-parse.y"
- { yyval.code = PREINCREMENT_EXPR; ;
- break;}
- case 84:
- #line 650 "cplus-parse.y"
- { yyval.code = PREDECREMENT_EXPR; ;
- break;}
- case 85:
- #line 652 "cplus-parse.y"
- { yyval.code = TRUTH_NOT_EXPR; ;
- break;}
- case 86:
- #line 656 "cplus-parse.y"
- { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
- break;}
- case 87:
- #line 659 "cplus-parse.y"
- {
- if (TREE_CODE (yyvsp[0].ttype) == CALL_EXPR
- && TYPE_NEEDS_DESTRUCTOR (TREE_TYPE (yyvsp[0].ttype)))
- yyval.ttype = cleanup_after_call (yyvsp[0].ttype);
- ;
- break;}
- case 88:
- #line 668 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 90:
- #line 674 "cplus-parse.y"
- { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 91:
- #line 676 "cplus-parse.y"
- { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
- break;}
- case 92:
- #line 678 "cplus-parse.y"
- { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, error_mark_node)); ;
- break;}
- case 93:
- #line 683 "cplus-parse.y"
- {
- if (TREE_CODE (yyvsp[0].ttype) == TYPE_EXPR)
- yyval.ttype = build_component_type_expr (C_C_D, yyvsp[0].ttype, NULL_TREE, 1);
- else
- yyval.ttype = yyvsp[0].ttype;
- ;
- break;}
- case 94:
- #line 690 "cplus-parse.y"
- { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
- break;}
- case 95:
- #line 692 "cplus-parse.y"
- { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
- break;}
- case 96:
- #line 694 "cplus-parse.y"
- { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
- break;}
- case 97:
- #line 696 "cplus-parse.y"
- { yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype);
- if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
- TREE_NEGATED_INT (yyval.ttype) = 1;
- ;
- break;}
- case 98:
- #line 701 "cplus-parse.y"
- { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
- && TREE_PACKED (TREE_OPERAND (yyvsp[0].ttype, 1)))
- error ("sizeof applied to a bit-field");
- /* ANSI says arrays and functions are converted inside comma.
- But we can't really convert them in build_compound_expr
- because that would break commas in lvalues.
- So do the conversion here if operand was a comma. */
- if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
- && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
- || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
- yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
- yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
- break;}
- case 99:
- #line 714 "cplus-parse.y"
- { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
- break;}
- case 100:
- #line 716 "cplus-parse.y"
- { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
- && TREE_PACKED (TREE_OPERAND (yyvsp[0].ttype, 1)))
- error ("`__alignof' applied to a bit-field");
- if (TREE_CODE (yyvsp[0].ttype) == INDIRECT_REF)
- {
- tree t = TREE_OPERAND (yyvsp[0].ttype, 0);
- tree best = t;
- int bestalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t)));
- while (TREE_CODE (t) == NOP_EXPR
- && TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0))) == POINTER_TYPE)
- {
- int thisalign;
- t = TREE_OPERAND (t, 0);
- thisalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t)));
- if (thisalign > bestalign)
- best = t, bestalign = thisalign;
- }
- yyval.ttype = c_alignof (TREE_TYPE (TREE_TYPE (best)));
- }
- else
- {
- /* ANSI says arrays and fns are converted inside comma.
- But we can't convert them in build_compound_expr
- because that would break commas in lvalues.
- So do the conversion here if operand was a comma. */
- if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
- && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
- || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
- yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
- yyval.ttype = c_alignof (TREE_TYPE (yyvsp[0].ttype));
- }
- ;
- break;}
- case 101:
- #line 749 "cplus-parse.y"
- { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
- break;}
- case 102:
- #line 752 "cplus-parse.y"
- { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 103:
- #line 754 "cplus-parse.y"
- { yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 104:
- #line 756 "cplus-parse.y"
- { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ;
- break;}
- case 105:
- #line 758 "cplus-parse.y"
- { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 106:
- #line 760 "cplus-parse.y"
- { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
- break;}
- case 107:
- #line 763 "cplus-parse.y"
- { yyungetc (':', 1);
- yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 108:
- #line 767 "cplus-parse.y"
- { tree expr = convert_from_reference (yyvsp[0].ttype);
- tree type = TREE_TYPE (expr);
-
- if (integer_zerop (expr))
- yyval.ttype = build1 (NOP_EXPR, void_type_node, expr);
- else if (TREE_CODE (type) != POINTER_TYPE)
- {
- error ("non-pointer type to `delete'");
- yyval.ttype = error_mark_node;
- }
- else if (! TYPE_LANG_SPECIFIC (TREE_TYPE (type))
- || ! TYPE_USES_VIRTUAL_BASECLASSES (TREE_TYPE (type)))
- yyval.ttype = build_delete (type, expr, integer_one_node,
- LOOKUP_NORMAL, yyvsp[-1].ttype);
- else
- {
- yyval.ttype = build (COMPOUND_EXPR, void_type_node,
- build (COMPOUND_EXPR, void_type_node,
- build_delete (type, expr, integer_zero_node, LOOKUP_NORMAL, 0),
- build_vbase_delete (TREE_TYPE (type),
- build_indirect_ref (expr))),
- build_x_delete (type, expr, yyvsp[-1].ttype));
- }
- ;
- break;}
- case 109:
- #line 792 "cplus-parse.y"
- {
- tree maxindex = build_binary_op (MINUS_EXPR, yyvsp[-2].ttype, integer_one_node);
- tree exp = convert_from_reference (yyvsp[0].ttype);
- tree elt_size = c_sizeof (TREE_TYPE (exp));
-
- if (yychar == YYEMPTY)
- yychar = YYLEX;
-
- yyval.ttype = build_vec_delete (exp, maxindex, elt_size, NULL_TREE,
- integer_one_node, integer_zero_node);
- ;
- break;}
- case 111:
- #line 808 "cplus-parse.y"
- { tree type = groktypename (yyvsp[-2].ttype);
- yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
- break;}
- case 112:
- #line 811 "cplus-parse.y"
- { tree type = groktypename (yyvsp[-5].ttype);
- tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
- if (pedantic)
- warning ("ANSI C forbids constructor-expressions");
- /* Indicate that this was a GNU C constructor expression. */
- TREE_HAS_CONSTRUCTOR (init) = 1;
- yyval.ttype = digest_init (type, init, 0);
- if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
- {
- int failure = complete_array_type (type, yyval.ttype, 1);
- if (failure)
- abort ();
- }
- ;
- break;}
- case 114:
- #line 830 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 115:
- #line 832 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 116:
- #line 834 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 117:
- #line 836 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 118:
- #line 838 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 119:
- #line 840 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 120:
- #line 842 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 121:
- #line 844 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 122:
- #line 846 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 123:
- #line 848 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 124:
- #line 850 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 125:
- #line 852 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 126:
- #line 854 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 127:
- #line 856 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 128:
- #line 858 "cplus-parse.y"
- { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 129:
- #line 860 "cplus-parse.y"
- { yyval.ttype = build_x_conditional_expr (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 130:
- #line 862 "cplus-parse.y"
- { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); ;
- break;}
- case 131:
- #line 864 "cplus-parse.y"
- { register tree rval;
- if (rval = build_opfncall (MODIFY_EXPR, LOOKUP_NORMAL, yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-1].code))
- yyval.ttype = rval;
- else
- yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
- break;}
- case 132:
- #line 872 "cplus-parse.y"
- { yyval.ttype = build_m_component_ref (yyvsp[-2].ttype, build_x_indirect_ref (yyvsp[0].ttype, "unary *")); ;
- break;}
- case 133:
- #line 874 "cplus-parse.y"
- { yyval.ttype = build_m_component_ref (yyvsp[-2].ttype, build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype)); ;
- break;}
- case 134:
- #line 876 "cplus-parse.y"
- { yyval.ttype = build_m_component_ref (yyvsp[-2].ttype, build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype)); ;
- break;}
- case 135:
- #line 878 "cplus-parse.y"
- { tree type = groktypename (yyvsp[-2].ttype);
- yyval.ttype = build_m_component_ref (yyvsp[-4].ttype, build_c_cast (type, yyvsp[0].ttype)); ;
- break;}
- case 136:
- #line 881 "cplus-parse.y"
- { yyval.ttype = build_m_component_ref (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 137:
- #line 886 "cplus-parse.y"
- { yyval.ttype = lastiddecl;
- if (yychar == YYEMPTY)
- yychar = YYLEX;
- /* Scope class declarations before global
- declarations. */
- if (yyval.ttype == IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype)
- && current_class_type != 0
- && TYPE_SIZE (current_class_type) == 0)
- {
- /* Could be from one of the base classes. */
- tree field = lookup_field (current_class_type, yyvsp[0].ttype, 1);
- if (field == 0)
- ;
- else if (field == error_mark_node)
- /* We have already generated the error message.
- But we still want to return this value. */
- yyval.ttype = lookup_field (current_class_type, yyvsp[0].ttype, 0);
- else if (TREE_CODE (field) == VAR_DECL
- || TREE_CODE (field) == CONST_DECL)
- yyval.ttype = field;
- else if (TREE_CODE (field) != FIELD_DECL)
- abort ();
- else
- {
- error_with_decl (field, "invalid use of member `%s' from base class `%s'",
- TYPE_NAME_STRING (DECL_FIELD_CONTEXT (field)));
- yyval.ttype = error_mark_node;
- break;
- }
- }
-
- if (!yyval.ttype || yyval.ttype == error_mark_node)
- {
- if (yychar == '(' || yychar == LEFT_RIGHT)
- {
- yyval.ttype = implicitly_declare (yyvsp[0].ttype);
- assemble_external (yyval.ttype);
- TREE_USED (yyval.ttype) = 1;
- }
- else if (current_function_decl == 0)
- {
- error ("`%s' undeclared, outside of functions",
- IDENTIFIER_POINTER (yyvsp[0].ttype));
- yyval.ttype = error_mark_node;
- }
- else
- {
- if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
- || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
- {
- error ("`%s' undeclared (first use this function)",
- IDENTIFIER_POINTER (yyvsp[0].ttype));
-
- if (! undeclared_variable_notice)
- {
- error ("(Each undeclared identifier is reported only once");
- error ("for each function it appears in.)");
- undeclared_variable_notice = 1;
- }
- }
- yyval.ttype = error_mark_node;
- /* Prevent repeated error messages. */
- IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
- SET_IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype, current_function_decl);
- }
- }
- /* TREE_USED is set in `hack_identifier'. */
- if (TREE_CODE (yyval.ttype) == CONST_DECL)
- {
- if (IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype) == yyval.ttype)
- {
- /* Check visibility. */
- enum visibility_type visibility
- = compute_visibility (CLASSTYPE_AS_LIST (current_class_type), yyval.ttype);
- if (visibility == visibility_private)
- error_with_decl (yyval.ttype, "enum `%s' is private");
- /* protected is OK, since it's an enum of `this'. */
- }
- yyval.ttype = DECL_INITIAL (yyval.ttype);
- }
- else yyval.ttype = hack_identifier (yyval.ttype, yyvsp[0].ttype, yychar);
- ;
- break;}
- case 138:
- #line 969 "cplus-parse.y"
- {
- tree op = hack_operator (yyvsp[0].ttype);
- yyval.ttype = lookup_name (op);
- if (yyval.ttype == NULL_TREE)
- {
- error ("operator %s not defined", operator_name_string (op));
- yyval.ttype = error_mark_node;
- }
- ;
- break;}
- case 140:
- #line 980 "cplus-parse.y"
- { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
- break;}
- case 141:
- #line 982 "cplus-parse.y"
- { yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 142:
- #line 984 "cplus-parse.y"
- { yyval.ttype = error_mark_node; ;
- break;}
- case 143:
- #line 986 "cplus-parse.y"
- { if (current_function_decl == 0)
- {
- error ("braced-group within expression allowed only inside a function");
- YYERROR;
- }
- keep_next_level ();
- yyval.ttype = expand_start_stmt_expr (); ;
- break;}
- case 144:
- #line 994 "cplus-parse.y"
- { tree rtl_exp;
- if (pedantic)
- warning ("ANSI C forbids braced-groups within expressions");
- rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
- yyval.ttype = yyvsp[-1].ttype;
- TREE_USED (yyval.ttype) = 0;
- /* Since the statements have side effects,
- consider this volatile. */
- TREE_VOLATILE (yyval.ttype) = 1;
- TREE_TYPE (yyval.ttype) = TREE_TYPE (rtl_exp);
- STMT_BODY (yyval.ttype) = rtl_exp; ;
- break;}
- case 145:
- #line 1006 "cplus-parse.y"
- { yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_decl); ;
- break;}
- case 146:
- #line 1008 "cplus-parse.y"
- { yyval.ttype = build_x_function_call (yyvsp[-1].ttype, NULL_TREE, current_class_decl); ;
- break;}
- case 147:
- #line 1010 "cplus-parse.y"
- {
- do_array:
- {
- tree type = TREE_TYPE (yyvsp[-3].ttype);
- if (type == error_mark_node || yyvsp[-1].ttype == error_mark_node)
- yyval.ttype = error_mark_node;
- else if (type == NULL_TREE)
- {
- /* Something has gone very wrong. Assume we
- are mistakenly reducing an expression
- instead of a declaration. */
- error ("parser may be lost: is there a '{' missing somewhere?");
- yyval.ttype = NULL_TREE;
- }
- else
- {
- if (TREE_CODE (type) == OFFSET_TYPE)
- type = TREE_TYPE (type);
- if (TREE_CODE (type) == REFERENCE_TYPE)
- type = TREE_TYPE (type);
-
- if (TYPE_LANG_SPECIFIC (type) &&
- TYPE_OVERLOADS_ARRAY_REF (type))
- yyval.ttype = build_opfncall (ARRAY_REF, LOOKUP_NORMAL, yyvsp[-3].ttype, yyvsp[-1].ttype);
- else if (TREE_CODE (type) == POINTER_TYPE
- || TREE_CODE (type) == ARRAY_TYPE)
- yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype);
- else
- error("[] applied to non-pointer type");
- }
- }
- ;
- break;}
- case 148:
- #line 1043 "cplus-parse.y"
- { yyval.ttype = build_component_ref (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
- break;}
- case 149:
- #line 1045 "cplus-parse.y"
- {
- tree basetype = (TREE_CODE (yyvsp[-1].ttype) == SCOPE_REF) ? TREE_OPERAND (yyvsp[-1].ttype, 1) : yyvsp[-1].ttype;
- if (is_aggr_typedef (basetype, 1))
- {
- basetype = TREE_TYPE (TREE_TYPE (basetype));
-
- if (yyvsp[-2].ttype == error_mark_node)
- yyval.ttype = error_mark_node;
- else if (basetype_or_else (basetype, TREE_TYPE (yyvsp[-2].ttype)))
- yyval.ttype = build_component_ref (build_scoped_ref (yyvsp[-2].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, NULL_TREE, 1);
- else
- yyval.ttype = error_mark_node;
- }
- else yyval.ttype = error_mark_node;
- ;
- break;}
- case 150:
- #line 1061 "cplus-parse.y"
- { yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype); ;
- break;}
- case 151:
- #line 1063 "cplus-parse.y"
- { yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype); ;
- break;}
- case 152:
- #line 1067 "cplus-parse.y"
- { if (current_class_decl)
- {
- #ifdef WARNING_ABOUT_CCD
- TREE_USED (current_class_decl) = 1;
- #endif
- yyval.ttype = current_class_decl;
- }
- else if (current_function_decl
- && DECL_STATIC_FUNCTION_P (current_function_decl))
- {
- error ("`this' is unavailable for static member functions");
- yyval.ttype = error_mark_node;
- }
- else
- {
- if (current_function_decl)
- error ("invalid use of `this' in non-member function");
- else
- error ("invalid use of `this' at top level");
- yyval.ttype = error_mark_node;
- }
- ;
- break;}
- case 153:
- #line 1090 "cplus-parse.y"
- {
- tree type;
- tree id = yyvsp[-3].ttype;
-
- /* This is a C cast in C++'s `functional' notation. */
- if (yyvsp[-1].ttype == error_mark_node)
- {
- yyval.ttype = error_mark_node;
- break;
- }
- #if 0
- if (yyvsp[-1].ttype == NULL_TREE)
- {
- error ("cannot cast null list to type `%s'",
- IDENTIFIER_POINTER (TYPE_NAME (yyvsp[-3].ttype)));
- yyval.ttype = error_mark_node;
- break;
- }
- #endif
- if (type == error_mark_node)
- yyval.ttype = error_mark_node;
- else
- {
- if (id == ridpointers[(int) RID_CONST])
- type = build_type_variant (integer_type_node, 1, 0);
- else if (id == ridpointers[(int) RID_VOLATILE])
- type = build_type_variant (integer_type_node, 0, 1);
- else if (id == ridpointers[(int) RID_FRIEND])
- {
- error ("cannot cast expression to `friend' type");
- yyval.ttype = error_mark_node;
- break;
- }
- else abort ();
- yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
- }
- ;
- break;}
- case 154:
- #line 1128 "cplus-parse.y"
- { yyval.ttype = build_functional_cast (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 155:
- #line 1130 "cplus-parse.y"
- { yyval.ttype = build_functional_cast (yyvsp[-1].ttype, NULL_TREE); ;
- break;}
- case 156:
- #line 1132 "cplus-parse.y"
- {
- do_scoped_identifier:
- yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
- if (yychar == YYEMPTY)
- yychar = YYLEX;
- if (! yyval.ttype)
- {
- if (yychar == '(' || yychar == LEFT_RIGHT)
- {
- yyval.ttype = implicitly_declare (yyvsp[0].ttype);
- }
- else
- {
- if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node)
- error ("undeclared variable `%s' (first use here)",
- IDENTIFIER_POINTER (yyvsp[0].ttype));
- yyval.ttype = error_mark_node;
- /* Prevent repeated error messages. */
- IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
- }
- }
- else if (TREE_CODE (yyval.ttype) == CONST_DECL)
- yyval.ttype = DECL_INITIAL (yyval.ttype);
- if (! TREE_USED (yyval.ttype))
- {
- if (TREE_EXTERNAL (yyval.ttype))
- assemble_external (yyval.ttype);
- TREE_USED (yyval.ttype) = 1;
- }
- ;
- break;}
- case 157:
- #line 1163 "cplus-parse.y"
- {
- yyvsp[0].ttype = hack_operator (yyvsp[0].ttype);
- if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
- goto do_scoped_identifier;
- do_scoped_operator:
- yyval.ttype = yyvsp[0].ttype;
- ;
- break;}
- case 158:
- #line 1171 "cplus-parse.y"
- { yyval.ttype = build_offset_ref (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 159:
- #line 1173 "cplus-parse.y"
- { yyval.ttype = build_member_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 160:
- #line 1175 "cplus-parse.y"
- { yyval.ttype = build_member_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ;
- break;}
- case 161:
- #line 1178 "cplus-parse.y"
- { yyval.ttype = build_method_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
- (LOOKUP_NORMAL|LOOKUP_AGGR)); ;
- break;}
- case 162:
- #line 1181 "cplus-parse.y"
- { yyval.ttype = build_method_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
- (LOOKUP_NORMAL|LOOKUP_AGGR)); ;
- break;}
- case 163:
- #line 1184 "cplus-parse.y"
- { yyval.ttype = build_scoped_method_call (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 164:
- #line 1186 "cplus-parse.y"
- { yyval.ttype = build_scoped_method_call (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ;
- break;}
- case 165:
- #line 1191 "cplus-parse.y"
- { yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 166:
- #line 1193 "cplus-parse.y"
- { yyval.ttype = error_mark_node; ;
- break;}
- case 167:
- #line 1195 "cplus-parse.y"
- { if (current_function_decl == 0)
- {
- error ("braced-group within expression allowed only inside a function");
- YYERROR;
- }
- yyval.ttype = expand_start_stmt_expr (); ;
- break;}
- case 168:
- #line 1202 "cplus-parse.y"
- { if (pedantic)
- warning ("ANSI C forbids braced-groups within expressions");
- yyval.ttype = expand_end_stmt_expr (yyvsp[-2].ttype); ;
- break;}
- case 169:
- #line 1206 "cplus-parse.y"
- { yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_decl); ;
- break;}
- case 170:
- #line 1208 "cplus-parse.y"
- { yyval.ttype = build_x_function_call (yyvsp[-1].ttype, NULL_TREE, current_class_decl); ;
- break;}
- case 171:
- #line 1210 "cplus-parse.y"
- { goto do_array; ;
- break;}
- case 172:
- #line 1212 "cplus-parse.y"
- { yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype); ;
- break;}
- case 173:
- #line 1214 "cplus-parse.y"
- { yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype); ;
- break;}
- case 174:
- #line 1216 "cplus-parse.y"
- { goto do_scoped_identifier; ;
- break;}
- case 175:
- #line 1218 "cplus-parse.y"
- { yyvsp[0].ttype = hack_operator (yyvsp[0].ttype);
- if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
- goto do_scoped_identifier;
- goto do_scoped_operator;
- ;
- break;}
- case 176:
- #line 1226 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 177:
- #line 1228 "cplus-parse.y"
- { yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 178:
- #line 1230 "cplus-parse.y"
- { yyval.ttype = void_type_node; ;
- break;}
- case 179:
- #line 1232 "cplus-parse.y"
- { yyval.ttype = combine_strings (yyvsp[-1].ttype); ;
- break;}
- case 180:
- #line 1234 "cplus-parse.y"
- { if (yyvsp[0].ttype != NULL_TREE
- && TREE_CODE (yyvsp[0].ttype) == TREE_LIST
- && TREE_PURPOSE (yyvsp[0].ttype) != NULL_TREE)
- error ("extra `::' before `new' ignored");
- else
- yyval.ttype = build_tree_list (error_mark_node, yyvsp[0].ttype);
- ;
- break;}
- case 181:
- #line 1244 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 182:
- #line 1246 "cplus-parse.y"
- { if (yyvsp[0].ttype)
- error ("extra `::' before `delete' ignored");
- yyval.ttype = error_mark_node;
- ;
- break;}
- case 184:
- #line 1256 "cplus-parse.y"
- { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 185:
- #line 1261 "cplus-parse.y"
- {
- if (! current_function_parms_stored)
- store_parm_decls ();
- setup_vtbl_ptr ();
- ;
- break;}
- case 186:
- #line 1269 "cplus-parse.y"
- {
- if (yyvsp[-1].ttype == error_mark_node)
- yyval.ttype = error_mark_node;
- else
- {
- tree type = TREE_TYPE (yyvsp[-1].ttype);
-
- if (IS_AGGR_TYPE (type)
- || (TREE_CODE (type) == REFERENCE_TYPE
- && IS_AGGR_TYPE (TREE_TYPE (type))))
- yyval.ttype = yyvsp[-1].ttype;
- else
- {
- error ("object in '.' expression is not of aggregate type");
- yyval.ttype = error_mark_node;
- }
- }
- ;
- break;}
- case 187:
- #line 1288 "cplus-parse.y"
- {
- yyval.ttype = build_x_arrow (yyvsp[-1].ttype);
- ;
- break;}
- case 188:
- #line 1295 "cplus-parse.y"
- {
- resume_momentary (yyvsp[-1].itype);
- note_got_semicolon (yyvsp[-2].ttype);
- ;
- break;}
- case 189:
- #line 1301 "cplus-parse.y"
- { tree d;
- int yes = suspend_momentary ();
- d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
- finish_decl (d, NULL_TREE, NULL_TREE);
- resume_momentary (yes);
- note_got_semicolon (yyvsp[-2].ttype);
- ;
- break;}
- case 190:
- #line 1309 "cplus-parse.y"
- { resume_momentary (yyvsp[-1].itype); ;
- break;}
- case 191:
- #line 1312 "cplus-parse.y"
- { tree d;
- int yes = suspend_momentary ();
- d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
- finish_decl (d, NULL_TREE, NULL_TREE);
- resume_momentary (yes);
- ;
- break;}
- case 192:
- #line 1319 "cplus-parse.y"
- {
- shadow_tag (yyvsp[-1].ttype);
- note_got_semicolon (yyvsp[-1].ttype);
- ;
- break;}
- case 193:
- #line 1324 "cplus-parse.y"
- { warning ("empty declaration"); ;
- break;}
- case 196:
- #line 1341 "cplus-parse.y"
- { yyval.ttype = list_hash_lookup_or_cons (yyvsp[0].ttype); ;
- break;}
- case 197:
- #line 1343 "cplus-parse.y"
- { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 198:
- #line 1345 "cplus-parse.y"
- { yyval.ttype = hash_tree_chain (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 199:
- #line 1347 "cplus-parse.y"
- { yyval.ttype = hash_tree_chain (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
- break;}
- case 200:
- #line 1353 "cplus-parse.y"
- { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 201:
- #line 1355 "cplus-parse.y"
- { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 202:
- #line 1357 "cplus-parse.y"
- { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 203:
- #line 1359 "cplus-parse.y"
- { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 204:
- #line 1368 "cplus-parse.y"
- { yyval.ttype = list_hash_lookup_or_cons (yyvsp[0].ttype); ;
- break;}
- case 205:
- #line 1370 "cplus-parse.y"
- { yyval.ttype = list_hash_lookup_or_cons (yyvsp[0].ttype); ;
- break;}
- case 206:
- #line 1372 "cplus-parse.y"
- { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 207:
- #line 1374 "cplus-parse.y"
- { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 208:
- #line 1386 "cplus-parse.y"
- { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 209:
- #line 1388 "cplus-parse.y"
- { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 210:
- #line 1390 "cplus-parse.y"
- { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 211:
- #line 1392 "cplus-parse.y"
- { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
- break;}
- case 212:
- #line 1397 "cplus-parse.y"
- { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 213:
- #line 1399 "cplus-parse.y"
- { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 217:
- #line 1410 "cplus-parse.y"
- { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
- if (pedantic)
- warning ("ANSI C forbids `typeof'"); ;
- break;}
- case 218:
- #line 1414 "cplus-parse.y"
- { yyval.ttype = groktypename (yyvsp[-1].ttype);
- if (pedantic)
- warning ("ANSI C forbids `typeof'"); ;
- break;}
- case 222:
- #line 1428 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 223:
- #line 1430 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 224:
- #line 1432 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 225:
- #line 1434 "cplus-parse.y"
- { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
- if (pedantic)
- warning ("ANSI C forbids `typeof'") ;
- break;}
- case 226:
- #line 1438 "cplus-parse.y"
- { yyval.ttype = groktypename (yyvsp[-1].ttype);
- if (pedantic)
- warning ("ANSI C forbids `typeof'") ;
- break;}
- case 231:
- #line 1455 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 232:
- #line 1457 "cplus-parse.y"
- { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
- yyval.ttype = yyvsp[-1].ttype;
- if (pedantic)
- warning ("ANSI C forbids use of `asm' keyword");
- ;
- break;}
- case 233:
- #line 1466 "cplus-parse.y"
- { current_declspecs = yyvsp[-5].ttype;
- yyvsp[0].itype = suspend_momentary ();
- yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ;
- break;}
- case 234:
- #line 1471 "cplus-parse.y"
- { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype);
- yyval.itype = yyvsp[-2].itype; ;
- break;}
- case 235:
- #line 1474 "cplus-parse.y"
- { tree d;
- current_declspecs = yyvsp[-4].ttype;
- yyval.itype = suspend_momentary ();
- d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
- finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
- break;}
- case 236:
- #line 1483 "cplus-parse.y"
- { yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ;
- break;}
- case 237:
- #line 1486 "cplus-parse.y"
- { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
- break;}
- case 238:
- #line 1488 "cplus-parse.y"
- { tree d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
- finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
- break;}
- case 239:
- #line 1494 "cplus-parse.y"
- { current_declspecs = yyvsp[-5].ttype;
- yyvsp[0].itype = suspend_momentary ();
- yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ;
- break;}
- case 240:
- #line 1499 "cplus-parse.y"
- { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype);
- yyval.itype = yyvsp[-2].itype; ;
- break;}
- case 241:
- #line 1502 "cplus-parse.y"
- { tree d;
- current_declspecs = yyvsp[-4].ttype;
- yyval.itype = suspend_momentary ();
- d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
- finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
- break;}
- case 242:
- #line 1513 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 243:
- #line 1515 "cplus-parse.y"
- { yyval.ttype = yyvsp[-2].ttype; ;
- break;}
- case 246:
- #line 1525 "cplus-parse.y"
- { warning ("`%s' attribute directive ignored",
- IDENTIFIER_POINTER (yyvsp[0].ttype));
- yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 247:
- #line 1529 "cplus-parse.y"
- { /* if not "aligned(1)", then issue warning */
- if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
- || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST
- || TREE_INT_CST_LOW (yyvsp[-1].ttype) != 1)
- warning ("`%s' attribute directive ignored",
- IDENTIFIER_POINTER (yyvsp[-3].ttype));
- yyval.ttype = yyvsp[-3].ttype; ;
- break;}
- case 248:
- #line 1537 "cplus-parse.y"
- { warning ("`%s' attribute directive ignored",
- IDENTIFIER_POINTER (yyvsp[-3].ttype));
- yyval.ttype = yyvsp[-3].ttype; ;
- break;}
- case 249:
- #line 1544 "cplus-parse.y"
- { ;
- break;}
- case 250:
- #line 1546 "cplus-parse.y"
- { ;
- break;}
- case 252:
- #line 1552 "cplus-parse.y"
- { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
- TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1;
- if (pedantic)
- warning ("ANSI C forbids empty initializer braces"); ;
- break;}
- case 253:
- #line 1557 "cplus-parse.y"
- { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
- TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
- break;}
- case 254:
- #line 1560 "cplus-parse.y"
- { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
- TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
- break;}
- case 255:
- #line 1563 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 256:
- #line 1570 "cplus-parse.y"
- { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 257:
- #line 1572 "cplus-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
- break;}
- case 258:
- #line 1577 "cplus-parse.y"
- { yyvsp[0].itype = suspend_momentary ();
- yyval.ttype = start_enum (yyvsp[-1].ttype); ;
- break;}
- case 259:
- #line 1580 "cplus-parse.y"
- { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
- resume_momentary (yyvsp[-4].itype);
- check_for_missing_semicolon (yyvsp[-3].ttype); ;
- break;}
- case 260:
- #line 1584 "cplus-parse.y"
- { yyvsp[0].itype = suspend_momentary ();
- yyval.ttype = start_enum (make_anon_name ()); ;
- break;}
- case 261:
- #line 1587 "cplus-parse.y"
- { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
- resume_momentary (yyvsp[-5].itype);
- check_for_missing_semicolon (yyvsp[-3].ttype); ;
- break;}
- case 262:
- #line 1591 "cplus-parse.y"
- { yyval.ttype = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 263:
- #line 1595 "cplus-parse.y"
- {
- if (TREE_CODE (yyvsp[-3].ttype) == ENUMERAL_TYPE)
- yyval.ttype = yyvsp[-3].ttype;
- else if (CLASSTYPE_DECLARED_EXCEPTION (yyvsp[-3].ttype))
- yyval.ttype = finish_exception (yyvsp[-3].ttype, yyvsp[-1].ttype);
- else
- yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-1].ttype, 0, 0);
-
- if (yyvsp[-2].itype & 1)
- resume_temporary_allocation ();
- if (yyvsp[-2].itype & 2)
- resume_momentary (1);
- check_for_missing_semicolon (yyval.ttype);
- ;
- break;}
- case 264:
- #line 1610 "cplus-parse.y"
- { if (TREE_CODE (yyvsp[-4].ttype) == ENUMERAL_TYPE)
- yyval.ttype = yyvsp[-4].ttype;
- else if (CLASSTYPE_DECLARED_EXCEPTION (yyvsp[-4].ttype))
- warning ("empty exception declaration\n");
- else
- yyval.ttype = finish_struct (yyvsp[-4].ttype, yyvsp[-2].ttype, 1, 1);
- if (yyvsp[-3].itype & 1)
- resume_temporary_allocation ();
- if (yyvsp[-3].itype & 2)
- resume_momentary (1);
- note_got_semicolon (yyval.ttype);
- yyungetc (';', 0); ;
- break;}
- case 265:
- #line 1623 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 269:
- #line 1634 "cplus-parse.y"
- { if (pedantic) warning ("comma at end of enumerator list"); ;
- break;}
- case 270:
- #line 1638 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 271:
- #line 1640 "cplus-parse.y"
- { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 272:
- #line 1642 "cplus-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 273:
- #line 1644 "cplus-parse.y"
- { error ("storage class specifier `%s' not allow after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
- ;
- break;}
- case 274:
- #line 1647 "cplus-parse.y"
- { error ("type specifier `%s' not allow after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
- ;
- break;}
- case 275:
- #line 1650 "cplus-parse.y"
- { error ("type qualifier `%s' not allow after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
- ;
- break;}
- case 276:
- #line 1653 "cplus-parse.y"
- { error ("no body nor ';' separates two class, struct or union declarations");
- ;
- break;}
- case 277:
- #line 1658 "cplus-parse.y"
- { yyval.ttype = xref_tag (yyvsp[0].ttype, make_anon_name (), NULL_TREE); ;
- break;}
- case 278:
- #line 1660 "cplus-parse.y"
- { yyval.ttype = xref_tag (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 279:
- #line 1662 "cplus-parse.y"
- { yyval.ttype = xref_tag (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 280:
- #line 1664 "cplus-parse.y"
- { yyungetc (':', 1);
- yyval.ttype = xref_tag (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 281:
- #line 1667 "cplus-parse.y"
- { yyval.ttype = xref_tag (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 282:
- #line 1672 "cplus-parse.y"
- { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
- yyval.ttype = NULL_TREE;
- else yyval.ttype = build_tree_list ((tree)visibility_default, yyvsp[0].ttype); ;
- break;}
- case 283:
- #line 1676 "cplus-parse.y"
- { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
- yyval.ttype = NULL_TREE;
- else yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 284:
- #line 1680 "cplus-parse.y"
- { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
- yyval.ttype = NULL_TREE;
- else yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list ((tree)visibility_default, yyvsp[0].ttype)); ;
- break;}
- case 285:
- #line 1684 "cplus-parse.y"
- { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
- yyval.ttype = NULL_TREE;
- else yyval.ttype = chainon (yyvsp[-3].ttype, build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype)); ;
- break;}
- case 286:
- #line 1691 "cplus-parse.y"
- { yyval.ttype = (tree)visibility_public; ;
- break;}
- case 287:
- #line 1693 "cplus-parse.y"
- { yyval.ttype = (tree)visibility_private; ;
- break;}
- case 288:
- #line 1695 "cplus-parse.y"
- { if (yyvsp[0].ttype != ridpointers[(int)RID_VIRTUAL])
- sorry ("non-virtual visibility");
- yyval.ttype = (tree)visibility_default_virtual; ;
- break;}
- case 289:
- #line 1699 "cplus-parse.y"
- { if (yyvsp[-1].ttype == (tree)visibility_private)
- error ("base class cannot be public and private");
- else if (yyvsp[-1].ttype == (tree)visibility_default_virtual)
- yyval.ttype = (tree)visibility_public_virtual; ;
- break;}
- case 290:
- #line 1704 "cplus-parse.y"
- { if (yyvsp[-1].ttype == (tree)visibility_public)
- error ("base class cannot be private and public");
- else if (yyvsp[-1].ttype == (tree)visibility_default_virtual)
- yyval.ttype = (tree)visibility_private_virtual; ;
- break;}
- case 291:
- #line 1709 "cplus-parse.y"
- { if (yyvsp[0].ttype != ridpointers[(int)RID_VIRTUAL])
- sorry ("non-virtual visibility");
- if (yyvsp[-1].ttype == (tree)visibility_public)
- yyval.ttype = (tree)visibility_public_virtual;
- else if (yyvsp[-1].ttype == (tree)visibility_private)
- yyval.ttype = (tree)visibility_private_virtual; ;
- break;}
- case 292:
- #line 1718 "cplus-parse.y"
- { int temp = allocation_temporary_p ();
- int momentary = suspend_momentary ();
- if (temp)
- end_temporary_allocation ();
- yyval.itype = (momentary << 1) | temp;
- if (! IS_AGGR_TYPE (yyvsp[-1].ttype))
- {
- yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
- TYPE_NAME (yyvsp[-1].ttype) = get_identifier ("erroneous type");
- }
- pushclass (yyvsp[-1].ttype, 0); ;
- break;}
- case 293:
- #line 1732 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 294:
- #line 1734 "cplus-parse.y"
- { yyval.ttype = build_tree_list ((tree)visibility_default, yyvsp[0].ttype); ;
- break;}
- case 295:
- #line 1736 "cplus-parse.y"
- { yyval.ttype = chainon (yyvsp[-3].ttype, build_tree_list ((tree)visibility_public, yyvsp[0].ttype)); ;
- break;}
- case 296:
- #line 1738 "cplus-parse.y"
- { yyval.ttype = chainon (yyvsp[-3].ttype, build_tree_list ((tree)visibility_private, yyvsp[0].ttype)); ;
- break;}
- case 297:
- #line 1740 "cplus-parse.y"
- { yyval.ttype = chainon (yyvsp[-3].ttype, build_tree_list ((tree)visibility_protected, yyvsp[0].ttype)); ;
- break;}
- case 301:
- #line 1748 "cplus-parse.y"
- { if (yyvsp[0].ttype == void_type_node) yyval.ttype = NULL_TREE; ;
- break;}
- case 302:
- #line 1750 "cplus-parse.y"
- { if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
- yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 303:
- #line 1753 "cplus-parse.y"
- { if (pedantic)
- warning ("extra semicolon in struct or union specified"); ;
- break;}
- case 304:
- #line 1759 "cplus-parse.y"
- {
- do_components:
- if (yyvsp[-1].ttype == void_type_node)
- /* We just got some friends.
- They have been recorded elsewhere. */
- yyval.ttype = NULL_TREE;
- else if (yyvsp[-1].ttype == NULL_TREE)
- {
- tree t = groktypename (build_decl_list (yyvsp[-2].ttype, NULL_TREE));
- if (t == NULL_TREE)
- {
- error ("error in component specification");
- yyval.ttype = NULL_TREE;
- }
- else if (TREE_CODE (t) == UNION_TYPE)
- {
- /* handle anonymous unions */
- if (CLASSTYPE_METHOD_VEC (t))
- sorry ("methods in anonymous unions");
- yyval.ttype = build_lang_field_decl (FIELD_DECL, NULL_TREE, t);
- DECL_ANON_UNION_ELEM (yyval.ttype) = 1;
- }
- else if (TREE_CODE (t) == ENUMERAL_TYPE)
- yyval.ttype = grok_enum_decls (t, NULL_TREE);
- else
- {
- if (TREE_CODE (t) == RECORD_TYPE
- && TYPE_LANG_SPECIFIC (t)
- && CLASSTYPE_DECLARED_EXCEPTION (t))
- shadow_tag (yyvsp[-2].ttype);
- yyval.ttype = NULL_TREE;
- }
- }
- else
- {
- tree t = TREE_TYPE (yyvsp[-1].ttype);
- if (TREE_CODE (t) == ENUMERAL_TYPE && TREE_NONLOCAL (t))
- yyval.ttype = grok_enum_decls (t, yyvsp[-1].ttype);
- else
- yyval.ttype = yyvsp[-1].ttype;
- }
- end_exception_decls ();
- ;
- break;}
- case 305:
- #line 1803 "cplus-parse.y"
- { yyval.ttype = groktypefield (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
- break;}
- case 306:
- #line 1805 "cplus-parse.y"
- { error ("missing ';' before right brace");
- yyungetc ('}', 0);
- yyval.ttype = groktypefield (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
- break;}
- case 307:
- #line 1809 "cplus-parse.y"
- { yyval.ttype = groktypefield (yyvsp[-2].ttype, empty_parms ()); ;
- break;}
- case 308:
- #line 1811 "cplus-parse.y"
- { error ("missing ';' before right brace");
- yyungetc ('}', 0);
- yyval.ttype = groktypefield (yyvsp[-2].ttype, empty_parms ()); ;
- break;}
- case 309:
- #line 1815 "cplus-parse.y"
- { goto do_components; ;
- break;}
- case 310:
- #line 1818 "cplus-parse.y"
- { yyval.ttype = grokfield (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, 0, 0, 0); ;
- break;}
- case 311:
- #line 1820 "cplus-parse.y"
- { error ("missing ';' before right brace");
- yyungetc ('}', 0);
- goto do_components; ;
- break;}
- case 312:
- #line 1824 "cplus-parse.y"
- { yyval.ttype = groktypefield (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
- break;}
- case 313:
- #line 1826 "cplus-parse.y"
- { error ("missing ';' before right brace");
- yyungetc ('}', 0);
- yyval.ttype = groktypefield (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
- break;}
- case 314:
- #line 1830 "cplus-parse.y"
- { yyval.ttype = groktypefield (yyvsp[-2].ttype, empty_parms ()); ;
- break;}
- case 315:
- #line 1832 "cplus-parse.y"
- { error ("missing ';' before right brace");
- yyungetc ('}', 0);
- yyval.ttype = groktypefield (yyvsp[-2].ttype, empty_parms ()); ;
- break;}
- case 316:
- #line 1836 "cplus-parse.y"
- { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
- break;}
- case 317:
- #line 1838 "cplus-parse.y"
- { error ("missing ';' before right brace");
- yyungetc ('}', 0);
- yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
- break;}
- case 318:
- #line 1842 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 319:
- #line 1847 "cplus-parse.y"
- { yyval.ttype = finish_method (yyvsp[-1].ttype); ;
- break;}
- case 320:
- #line 1849 "cplus-parse.y"
- { yyval.ttype = finish_method (yyvsp[-1].ttype); ;
- break;}
- case 321:
- #line 1851 "cplus-parse.y"
- { yyval.ttype = grokfield (yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
- break;}
- case 322:
- #line 1853 "cplus-parse.y"
- { error ("missing ';' before right brace");
- yyungetc ('}', 0);
- yyval.ttype = grokfield (yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
- break;}
- case 323:
- #line 1860 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 325:
- #line 1863 "cplus-parse.y"
- {
- /* In this context, void_type_node encodes
- friends. They have been recorded elsewhere. */
- if (yyvsp[-2].ttype == void_type_node)
- yyval.ttype = yyvsp[0].ttype;
- else
- yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype);
- ;
- break;}
- case 326:
- #line 1875 "cplus-parse.y"
- { current_declspecs = yyvsp[-4].ttype;
- yyval.ttype = grokfield (yyvsp[-3].ttype, current_declspecs, yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 327:
- #line 1878 "cplus-parse.y"
- { current_declspecs = yyvsp[-3].ttype;
- yyval.ttype = grokbitfield (yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype); ;
- break;}
- case 328:
- #line 1881 "cplus-parse.y"
- { current_declspecs = yyvsp[-2].ttype;
- yyval.ttype = grokbitfield (yyvsp[-1].ttype, current_declspecs, yyvsp[0].ttype); ;
- break;}
- case 329:
- #line 1884 "cplus-parse.y"
- { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 330:
- #line 1889 "cplus-parse.y"
- { yyval.ttype = grokfield (yyvsp[-3].ttype, current_declspecs, yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 331:
- #line 1891 "cplus-parse.y"
- { yyval.ttype = grokbitfield (yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype); ;
- break;}
- case 332:
- #line 1893 "cplus-parse.y"
- { yyval.ttype = grokbitfield (yyvsp[-1].ttype, current_declspecs, yyvsp[0].ttype); ;
- break;}
- case 333:
- #line 1895 "cplus-parse.y"
- { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 335:
- #line 1905 "cplus-parse.y"
- { TREE_CHAIN (yyvsp[0].ttype) = yyvsp[-2].ttype; yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 336:
- #line 1910 "cplus-parse.y"
- { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 337:
- #line 1912 "cplus-parse.y"
- { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 338:
- #line 1917 "cplus-parse.y"
- { yyval.ttype = build_decl_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 339:
- #line 1919 "cplus-parse.y"
- { yyval.ttype = build_decl_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 340:
- #line 1924 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 342:
- #line 1930 "cplus-parse.y"
- { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 343:
- #line 1932 "cplus-parse.y"
- { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 344:
- #line 1937 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 345:
- #line 1939 "cplus-parse.y"
- { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 346:
- #line 1947 "cplus-parse.y"
- { yyval.itype = suspend_momentary (); ;
- break;}
- case 347:
- #line 1948 "cplus-parse.y"
- { resume_momentary (yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 348:
- #line 1954 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 349:
- #line 1956 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 350:
- #line 1958 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype); ;
- break;}
- case 351:
- #line 1960 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE); ;
- break;}
- case 352:
- #line 1962 "cplus-parse.y"
- { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 353:
- #line 1964 "cplus-parse.y"
- { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
- break;}
- case 354:
- #line 1966 "cplus-parse.y"
- { yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 355:
- #line 1968 "cplus-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
- break;}
- case 356:
- #line 1970 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- see_typename (); ;
- break;}
- case 357:
- #line 1973 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- see_typename (); ;
- break;}
- case 358:
- #line 1976 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- see_typename (); ;
- break;}
- case 359:
- #line 1979 "cplus-parse.y"
- { yyval.ttype = make_reference_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
- break;}
- case 360:
- #line 1981 "cplus-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 361:
- #line 1983 "cplus-parse.y"
- { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 363:
- #line 1989 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 364:
- #line 1991 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 365:
- #line 1993 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype); ;
- break;}
- case 366:
- #line 1995 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE); ;
- break;}
- case 367:
- #line 1997 "cplus-parse.y"
- { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 368:
- #line 1999 "cplus-parse.y"
- { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
- break;}
- case 369:
- #line 2001 "cplus-parse.y"
- { yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 370:
- #line 2003 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- see_typename (); ;
- break;}
- case 371:
- #line 2006 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- see_typename (); ;
- break;}
- case 372:
- #line 2009 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- see_typename (); ;
- break;}
- case 373:
- #line 2012 "cplus-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 374:
- #line 2014 "cplus-parse.y"
- { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 375:
- #line 2022 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 376:
- #line 2024 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 377:
- #line 2026 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype); ;
- break;}
- case 378:
- #line 2028 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE); ;
- break;}
- case 379:
- #line 2030 "cplus-parse.y"
- { yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 380:
- #line 2032 "cplus-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 381:
- #line 2034 "cplus-parse.y"
- { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 382:
- #line 2036 "cplus-parse.y"
- { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 383:
- #line 2038 "cplus-parse.y"
- { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
- break;}
- case 384:
- #line 2040 "cplus-parse.y"
- { see_typename (); ;
- break;}
- case 385:
- #line 2044 "cplus-parse.y"
- { see_typename (); ;
- break;}
- case 386:
- #line 2047 "cplus-parse.y"
- { see_typename ();
- yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
- break;}
- case 387:
- #line 2050 "cplus-parse.y"
- { see_typename ();
- yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
- break;}
- case 388:
- #line 2053 "cplus-parse.y"
- {
- see_typename ();
- yyval.ttype = build_parse_node (WRAPPER_EXPR, yyvsp[0].ttype);
- ;
- break;}
- case 389:
- #line 2058 "cplus-parse.y"
- {
- see_typename ();
- yyval.ttype = build_parse_node (WRAPPER_EXPR,
- build_parse_node (COND_EXPR, yyvsp[0].ttype, NULL_TREE, NULL_TREE));
- ;
- break;}
- case 390:
- #line 2064 "cplus-parse.y"
- { see_typename ();
- yyval.ttype = build_parse_node (ANTI_WRAPPER_EXPR, yyvsp[0].ttype); ;
- break;}
- case 391:
- #line 2067 "cplus-parse.y"
- { see_typename ();
- yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 392:
- #line 2070 "cplus-parse.y"
- { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 393:
- #line 2072 "cplus-parse.y"
- { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-6].ttype,
- build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
- break;}
- case 394:
- #line 2075 "cplus-parse.y"
- { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-6].ttype,
- build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
- break;}
- case 395:
- #line 2078 "cplus-parse.y"
- { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype,
- build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
- break;}
- case 396:
- #line 2081 "cplus-parse.y"
- { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-6].ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
- break;}
- case 397:
- #line 2083 "cplus-parse.y"
- { yyval.ttype = build_parse_node (SCOPE_REF, NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 400:
- #line 2090 "cplus-parse.y"
- { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 401:
- #line 2095 "cplus-parse.y"
- { see_typename ();
- yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 402:
- #line 2099 "cplus-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 403:
- #line 2101 "cplus-parse.y"
- { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 404:
- #line 2103 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- see_typename (); ;
- break;}
- case 405:
- #line 2106 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- see_typename (); ;
- break;}
- case 406:
- #line 2109 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype;
- see_typename (); ;
- break;}
- case 407:
- #line 2112 "cplus-parse.y"
- { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 408:
- #line 2114 "cplus-parse.y"
- { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 409:
- #line 2116 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 410:
- #line 2118 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype); ;
- break;}
- case 411:
- #line 2120 "cplus-parse.y"
- { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 412:
- #line 2122 "cplus-parse.y"
- { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
- break;}
- case 413:
- #line 2124 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 414:
- #line 2126 "cplus-parse.y"
- { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, empty_parms (), yyvsp[0].ttype); ;
- break;}
- case 415:
- #line 2128 "cplus-parse.y"
- { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
- break;}
- case 416:
- #line 2130 "cplus-parse.y"
- { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
- break;}
- case 417:
- #line 2132 "cplus-parse.y"
- { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 418:
- #line 2134 "cplus-parse.y"
- { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-3].ttype, yyvsp[0].ttype); ;
- break;}
- case 419:
- #line 2136 "cplus-parse.y"
- { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, 0); ;
- break;}
- case 420:
- #line 2138 "cplus-parse.y"
- { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, 0); ;
- break;}
- case 425:
- #line 2159 "cplus-parse.y"
- {
- pushlevel (0);
- clear_last_expr ();
- push_momentary ();
- expand_start_bindings (0);
- stmt_decl_msg = 0;
- ;
- break;}
- case 426:
- #line 2172 "cplus-parse.y"
- {;
- break;}
- case 428:
- #line 2177 "cplus-parse.y"
- { yyval.ttype = 0; ;
- break;}
- case 429:
- #line 2179 "cplus-parse.y"
- { tree decls;
-
- pop_implicit_try_blocks (NULL_TREE);
- decls = getdecls ();
- expand_end_bindings (decls, decls != 0, 1);
- yyval.ttype = poplevel (decls != 0, 1, 0);
- pop_momentary (); ;
- break;}
- case 430:
- #line 2187 "cplus-parse.y"
- { pop_implicit_try_blocks (NULL_TREE);
- expand_end_bindings (getdecls (), 0, 1);
- yyval.ttype = poplevel (0, 0, 0);
- pop_momentary (); ;
- break;}
- case 431:
- #line 2195 "cplus-parse.y"
- { emit_line_note (input_filename, lineno);
- expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
- stmt_decl_msg = "if"; ;
- break;}
- case 432:
- #line 2199 "cplus-parse.y"
- { stmt_decl_msg = 0; ;
- break;}
- case 433:
- #line 2204 "cplus-parse.y"
- { finish_stmt (); ;
- break;}
- case 434:
- #line 2206 "cplus-parse.y"
- { if (stmt_decl_msg)
- error ("declaration after %s invalid", stmt_decl_msg);
- stmt_decl_msg = 0;
- finish_stmt (); ;
- break;}
- case 435:
- #line 2211 "cplus-parse.y"
- { emit_line_note (input_filename, lineno);
- /* Do default conversion if safe and possibly important,
- in case within ({...}). */
- if ((TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
- && lvalue_p (yyvsp[-1].ttype))
- || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
- yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
- expand_cplus_expr_stmt (yyvsp[-1].ttype);
- clear_momentary ();
- finish_stmt (); ;
- break;}
- case 436:
- #line 2222 "cplus-parse.y"
- { expand_start_else ();
- stmt_decl_msg = "else"; ;
- break;}
- case 437:
- #line 2225 "cplus-parse.y"
- { expand_end_else ();
- stmt_decl_msg = 0;
- finish_stmt (); ;
- break;}
- case 438:
- #line 2229 "cplus-parse.y"
- { expand_end_cond ();
- stmt_decl_msg = 0;
- finish_stmt (); ;
- break;}
- case 439:
- #line 2233 "cplus-parse.y"
- { emit_nop ();
- emit_line_note (input_filename, lineno);
- expand_start_loop (1); ;
- break;}
- case 440:
- #line 2237 "cplus-parse.y"
- { expand_exit_loop_if_false (truthvalue_conversion (yyvsp[-1].ttype));
- stmt_decl_msg = "while"; ;
- break;}
- case 441:
- #line 2240 "cplus-parse.y"
- {
- expand_end_loop ();
- stmt_decl_msg = 0;
- finish_stmt (); ;
- break;}
- case 442:
- #line 2245 "cplus-parse.y"
- { emit_nop ();
- emit_line_note (input_filename, lineno);
- expand_start_loop_continue_elsewhere (1);
- stmt_decl_msg = "do"; ;
- break;}
- case 443:
- #line 2250 "cplus-parse.y"
- { stmt_decl_msg = 0;
- expand_loop_continue_here (); ;
- break;}
- case 444:
- #line 2253 "cplus-parse.y"
- { emit_line_note (input_filename, lineno);
- expand_exit_loop_if_false (truthvalue_conversion (yyvsp[-2].ttype));
- expand_end_loop ();
- clear_momentary ();
- finish_stmt (); ;
- break;}
- case 445:
- #line 2259 "cplus-parse.y"
- { emit_nop ();
- emit_line_note (input_filename, lineno);
- if (yyvsp[0].ttype) expand_cplus_expr_stmt (yyvsp[0].ttype);
- expand_start_loop_continue_elsewhere (1); ;
- break;}
- case 446:
- #line 2264 "cplus-parse.y"
- { emit_line_note (input_filename, lineno);
- if (yyvsp[-1].ttype) expand_exit_loop_if_false (truthvalue_conversion (yyvsp[-1].ttype)); ;
- break;}
- case 447:
- #line 2269 "cplus-parse.y"
- { push_momentary ();
- stmt_decl_msg = "for"; ;
- break;}
- case 448:
- #line 2272 "cplus-parse.y"
- { emit_line_note (input_filename, lineno);
- expand_loop_continue_here ();
- if (yyvsp[-3].ttype) expand_cplus_expr_stmt (yyvsp[-3].ttype);
- pop_momentary ();
- expand_end_loop ();
- stmt_decl_msg = 0;
- finish_stmt (); ;
- break;}
- case 449:
- #line 2280 "cplus-parse.y"
- { emit_nop ();
- emit_line_note (input_filename, lineno);
- expand_start_loop_continue_elsewhere (1); ;
- break;}
- case 450:
- #line 2284 "cplus-parse.y"
- { emit_line_note (input_filename, lineno);
- if (yyvsp[-1].ttype) expand_exit_loop_if_false (truthvalue_conversion (yyvsp[-1].ttype)); ;
- break;}
- case 451:
- #line 2289 "cplus-parse.y"
- { push_momentary ();
- stmt_decl_msg = "for";
- yyvsp[0].itype = lineno; ;
- break;}
- case 452:
- #line 2293 "cplus-parse.y"
- { emit_line_note (input_filename, yyvsp[-2].itype);
- expand_loop_continue_here ();
- if (yyvsp[-3].ttype) expand_cplus_expr_stmt (yyvsp[-3].ttype);
- pop_momentary ();
- expand_end_loop ();
- pop_implicit_try_blocks (NULL_TREE);
- if (yyvsp[-8].itype)
- {
- register keep = yyvsp[-8].itype > 0;
- if (keep) expand_end_bindings (0, keep, 1);
- poplevel (keep, 1, 0);
- pop_momentary ();
- }
- stmt_decl_msg = 0;
- finish_stmt ();
- ;
- break;}
- case 453:
- #line 2310 "cplus-parse.y"
- { emit_line_note (input_filename, lineno);
- c_expand_start_case (yyvsp[-1].ttype);
- /* Don't let the tree nodes for $3 be discarded by
- clear_momentary during the parsing of the next stmt. */
- push_momentary ();
- stmt_decl_msg = "switch"; ;
- break;}
- case 454:
- #line 2317 "cplus-parse.y"
- { expand_end_case (yyvsp[-3].ttype);
- pop_momentary ();
- stmt_decl_msg = 0;
- finish_stmt (); ;
- break;}
- case 455:
- #line 2322 "cplus-parse.y"
- { register tree value = yyvsp[-1].ttype;
- register tree label
- = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
-
- /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
- Strip such NOP_EXPRs. */
- if (TREE_CODE (value) == NOP_EXPR
- && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
- value = TREE_OPERAND (value, 0);
-
- if (TREE_READONLY (value) && TREE_CODE (value) == VAR_DECL)
- {
- value = decl_constant_value (value);
- /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
- Strip such NOP_EXPRs. */
- if (TREE_CODE (value) == NOP_EXPR
- && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
- value = TREE_OPERAND (value, 0);
- }
- value = fold (value);
-
- if (TREE_CODE (value) != INTEGER_CST
- && value != error_mark_node)
- {
- error ("case label does not reduce to an integer constant");
- value = error_mark_node;
- }
- else
- /* Promote char or short to int. */
- value = default_conversion (value);
- if (value != error_mark_node)
- {
- int success = pushcase (value, label);
- if (success == 1)
- error ("case label not within a switch statement");
- else if (success == 2)
- error ("duplicate case value");
- else if (success == 3)
- warning ("case value out of range");
- }
- define_case_label (label);
- ;
- break;}
- case 457:
- #line 2366 "cplus-parse.y"
- { register tree value1 = yyvsp[-3].ttype;
- register tree value2 = yyvsp[-1].ttype;
- register tree label
- = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
-
- if (pedantic)
- {
- error ("ANSI C does not allow range expressions in switch statement");
- value1 = error_mark_node;
- value2 = error_mark_node;
- break;
- }
- /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
- Strip such NOP_EXPRs. */
- if (TREE_CODE (value1) == NOP_EXPR
- && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
- value1 = TREE_OPERAND (value1, 0);
-
- if (TREE_READONLY (value1) && TREE_CODE (value1) == VAR_DECL)
- {
- value1 = decl_constant_value (value1);
- /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
- Strip such NOP_EXPRs. */
- if (TREE_CODE (value1) == NOP_EXPR
- && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
- value1 = TREE_OPERAND (value1, 0);
- }
- value1 = fold (value1);
-
- /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
- Strip such NOP_EXPRs. */
- if (TREE_CODE (value2) == NOP_EXPR
- && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
- value2 = TREE_OPERAND (value2, 0);
-
- if (TREE_READONLY (value2) && TREE_CODE (value2) == VAR_DECL)
- {
- value2 = decl_constant_value (value2);
- /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
- Strip such NOP_EXPRs. */
- if (TREE_CODE (value2) == NOP_EXPR
- && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
- value2 = TREE_OPERAND (value2, 0);
- }
- value2 = fold (value2);
-
-
- if (TREE_CODE (value1) != INTEGER_CST
- && value1 != error_mark_node)
- {
- error ("case label does not reduce to an integer constant");
- value1 = error_mark_node;
- }
- if (TREE_CODE (value2) != INTEGER_CST
- && value2 != error_mark_node)
- {
- error ("case label does not reduce to an integer constant");
- value2 = error_mark_node;
- }
- if (value1 != error_mark_node
- && value2 != error_mark_node)
- {
- int success = pushcase_range (value1, value2, label);
- if (success == 1)
- error ("case label not within a switch statement");
- else if (success == 2)
- error ("duplicate (or overlapping) case value");
- else if (success == 3)
- warning ("case value out of range");
- else if (success == 4)
- warning ("empty range specified");
- }
- define_case_label (label);
- ;
- break;}
- case 459:
- #line 2442 "cplus-parse.y"
- {
- register tree label
- = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
- int success = pushcase (NULL_TREE, label);
- if (success == 1)
- error ("default label not within a switch statement");
- else if (success == 2)
- error ("multiple default labels in one switch");
- ;
- break;}
- case 461:
- #line 2453 "cplus-parse.y"
- { emit_line_note (input_filename, lineno);
- if ( ! expand_exit_something ())
- error ("break statement not within loop or switch"); ;
- break;}
- case 462:
- #line 2457 "cplus-parse.y"
- { emit_line_note (input_filename, lineno);
- if (! expand_continue_loop ())
- error ("continue statement not within a loop"); ;
- break;}
- case 463:
- #line 2461 "cplus-parse.y"
- { emit_line_note (input_filename, lineno);
- c_expand_return (NULL_TREE); ;
- break;}
- case 464:
- #line 2464 "cplus-parse.y"
- { emit_line_note (input_filename, lineno);
- c_expand_return (yyvsp[-1].ttype);
- finish_stmt ();
- ;
- break;}
- case 465:
- #line 2469 "cplus-parse.y"
- { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
- emit_line_note (input_filename, lineno);
- expand_asm (yyvsp[-2].ttype);
- finish_stmt ();
- ;
- break;}
- case 466:
- #line 2476 "cplus-parse.y"
- { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
- emit_line_note (input_filename, lineno);
- c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
- yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
- input_filename, lineno);
- finish_stmt ();
- ;
- break;}
- case 467:
- #line 2485 "cplus-parse.y"
- { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
- emit_line_note (input_filename, lineno);
- c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
- yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
- input_filename, lineno);
- finish_stmt ();
- ;
- break;}
- case 468:
- #line 2495 "cplus-parse.y"
- { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
- emit_line_note (input_filename, lineno);
- c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
- yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
- input_filename, lineno);
- finish_stmt ();
- ;
- break;}
- case 469:
- #line 2503 "cplus-parse.y"
- { tree decl;
- emit_line_note (input_filename, lineno);
- decl = lookup_label (yyvsp[-1].ttype);
- TREE_USED (decl) = 1;
- expand_goto (decl); ;
- break;}
- case 470:
- #line 2509 "cplus-parse.y"
- { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
- emit_nop ();
- if (label)
- expand_label (label); ;
- break;}
- case 471:
- #line 2514 "cplus-parse.y"
- { finish_stmt (); ;
- break;}
- case 472:
- #line 2516 "cplus-parse.y"
- { tree label = define_label (input_filename, lineno, yyvsp[0].ttype);
- if (label)
- expand_label (label); ;
- break;}
- case 473:
- #line 2520 "cplus-parse.y"
- { finish_stmt (); ;
- break;}
- case 474:
- #line 2522 "cplus-parse.y"
- { finish_stmt (); ;
- break;}
- case 475:
- #line 2526 "cplus-parse.y"
- { expand_cplus_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE);
- finish_stmt (); ;
- break;}
- case 476:
- #line 2529 "cplus-parse.y"
- { expand_cplus_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
- finish_stmt (); ;
- break;}
- case 477:
- #line 2532 "cplus-parse.y"
- {
- tree decl = cplus_expand_end_try (yyvsp[-3].itype);
- yyvsp[-2].ttype = current_exception_type;
- yyvsp[0].ttype = current_exception_decl;
- yyval.ttype = current_exception_object;
- cplus_expand_start_except (yyvsp[-1].ttype, decl);
- pushlevel (0);
- clear_last_expr ();
- push_momentary ();
- expand_start_bindings (0);
- stmt_decl_msg = 0;
- ;
- break;}
- case 478:
- #line 2545 "cplus-parse.y"
- {
- tree decls = getdecls ();
- /* If there is a default exception to handle,
- handle it here. */
- if (yyvsp[-1].ttype)
- expand_expr (yyvsp[-1].ttype, 0, 0, 0);
- expand_end_bindings (decls, decls != 0, 1);
- poplevel (decls != 0, 1, 0);
- pop_momentary ();
- current_exception_type = yyvsp[-5].ttype;
- current_exception_decl = yyvsp[-3].ttype;
- current_exception_object = yyvsp[-2].ttype;
- cplus_expand_end_except (yyvsp[-1].ttype);
- ;
- break;}
- case 479:
- #line 2560 "cplus-parse.y"
- { tree name = get_identifier ("(compiler error)");
- tree orig_ex_type = current_exception_type;
- tree orig_ex_decl = current_exception_decl;
- tree orig_ex_obj = current_exception_object;
- tree decl = cplus_expand_end_try (yyvsp[-2].itype), decls;
-
- /* Start hidden EXCEPT. */
- cplus_expand_start_except (name, decl);
- pushlevel (0);
- clear_last_expr ();
- push_momentary ();
- expand_start_bindings (0);
- stmt_decl_msg = 0;
-
- /* This sets up the reraise. */
- expand_cplus_reraise (yyvsp[0].ttype);
-
- decls = getdecls ();
- expand_end_bindings (decls, decls != 0, 1);
- poplevel (decls != 0, 1, 0);
- pop_momentary ();
- current_exception_type = orig_ex_type;
- current_exception_decl = orig_ex_decl;
- current_exception_object = orig_ex_obj;
- /* This will reraise for us. */
- cplus_expand_end_except (error_mark_node);
- if (yychar == YYEMPTY)
- yychar = YYLEX;
- if (yychar != ';')
- error ("missing ';' after reraise statement");
- ;
- break;}
- case 480:
- #line 2592 "cplus-parse.y"
- { yyerror ("`except' missing after `try' statement");
- /* Terminate the binding contour started by special
- code in `.pushlevel'. Automagically pops off
- the conditional we started for `try' stmt. */
- cplus_expand_end_try (yyvsp[0].itype);
- expand_end_bindings (0, 0, 1);
- poplevel (0, 0, 0);
- pop_momentary ();
- YYERROR; ;
- break;}
- case 481:
- #line 2604 "cplus-parse.y"
- { yyval.itype = 0; ;
- break;}
- case 482:
- #line 2606 "cplus-parse.y"
- {
- yyval.itype = 1;
- pop_implicit_try_blocks (NULL_TREE);
- ;
- break;}
- case 483:
- #line 2611 "cplus-parse.y"
- {
- yyval.itype = 0;
- pop_implicit_try_blocks (NULL_TREE);
- ;
- break;}
- case 484:
- #line 2617 "cplus-parse.y"
- { cplus_expand_start_try (0); ;
- break;}
- case 486:
- #line 2621 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 487:
- #line 2623 "cplus-parse.y"
- {
- tree type = lookup_exception_type (current_class_type, current_class_name, yyvsp[0].ttype);
- if (type == NULL_TREE)
- {
- error ("`%s' is not an exception type",
- IDENTIFIER_POINTER (TREE_VALUE (yyvsp[0].ttype)));
- current_exception_type = NULL_TREE;
- TREE_TYPE (current_exception_object) = error_mark_node;
- }
- else
- {
- current_exception_type = type;
- /* In-place union. */
- TREE_TYPE (current_exception_object) = type;
- }
- expand_cplus_start_catch (yyvsp[0].ttype);
- ;
- break;}
- case 488:
- #line 2641 "cplus-parse.y"
- {
- expand_cplus_end_catch (0);
- ;
- break;}
- case 489:
- #line 2645 "cplus-parse.y"
- {
- if (yyvsp[-1].ttype)
- error ("duplicate default in exception handler");
- current_exception_type = NULL_TREE;
- /* Takes it right out of scope. */
- TREE_TYPE (current_exception_object) = error_mark_node;
-
- if (! expand_catch_default ())
- compiler_error ("default catch botch");
-
- /* The default exception is handled as the
- last in the chain of exceptions handled. */
- do_pending_stack_adjust ();
- start_sequence ();
- yyvsp[-1].ttype = make_node (RTL_EXPR);
- TREE_TYPE (yyvsp[-1].ttype) = void_type_node;
- ;
- break;}
- case 490:
- #line 2663 "cplus-parse.y"
- {
- do_pending_stack_adjust ();
- if (! expand_catch (NULL_TREE))
- compiler_error ("except nesting botch");
- if (! expand_escape_except ())
- compiler_error ("except nesting botch");
- RTL_EXPR_SEQUENCE (yyvsp[-3].ttype) = (struct rtx_def *)get_insns ();
- end_sequence ();
- ;
- break;}
- case 491:
- #line 2676 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 492:
- #line 2678 "cplus-parse.y"
- { yyval.ttype = yyvsp[-1].ttype; ;
- break;}
- case 493:
- #line 2680 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 494:
- #line 2685 "cplus-parse.y"
- { yyval.itype = 0; ;
- break;}
- case 495:
- #line 2687 "cplus-parse.y"
- { yyval.itype = 0; ;
- break;}
- case 496:
- #line 2689 "cplus-parse.y"
- { yyval.itype = 1; ;
- break;}
- case 497:
- #line 2691 "cplus-parse.y"
- { yyval.itype = -1; ;
- break;}
- case 498:
- #line 2698 "cplus-parse.y"
- { if (pedantic)
- warning ("ANSI C forbids use of `asm' keyword");
- emit_line_note (input_filename, lineno); ;
- break;}
- case 499:
- #line 2702 "cplus-parse.y"
- { if (pedantic)
- warning ("ANSI C forbids use of `asm' keyword");
- emit_line_note (input_filename, lineno); ;
- break;}
- case 500:
- #line 2709 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 502:
- #line 2712 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 503:
- #line 2718 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 506:
- #line 2725 "cplus-parse.y"
- { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
- break;}
- case 507:
- #line 2730 "cplus-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
- break;}
- case 508:
- #line 2735 "cplus-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
- break;}
- case 509:
- #line 2737 "cplus-parse.y"
- { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
- break;}
- case 510:
- #line 2746 "cplus-parse.y"
- {
- if (strict_prototype)
- yyval.ttype = void_list_node;
- else
- yyval.ttype = NULL_TREE;
- ;
- break;}
- case 511:
- #line 2753 "cplus-parse.y"
- {
- yyval.ttype = chainon (yyvsp[0].ttype, void_list_node);
- TREE_PARMLIST (yyval.ttype) = 1;
- ;
- break;}
- case 512:
- #line 2758 "cplus-parse.y"
- {
- yyval.ttype = yyvsp[-2].ttype;
- TREE_PARMLIST (yyval.ttype) = 1;
- ;
- break;}
- case 513:
- #line 2764 "cplus-parse.y"
- {
- yyval.ttype = yyvsp[-1].ttype;
- TREE_PARMLIST (yyval.ttype) = 1;
- ;
- break;}
- case 514:
- #line 2769 "cplus-parse.y"
- {
- yyval.ttype = NULL_TREE;
- ;
- break;}
- case 515:
- #line 2773 "cplus-parse.y"
- {
- yyval.ttype = yyvsp[0].ttype;
- TREE_PARMLIST (yyval.ttype) = 1;
- ;
- break;}
- case 516:
- #line 2778 "cplus-parse.y"
- {
- yyval.ttype = yyvsp[-1].ttype;
- TREE_PARMLIST (yyval.ttype) = 1;
- ;
- break;}
- case 517:
- #line 2783 "cplus-parse.y"
- {
- /* This helps us recover from really nasty
- parse errors, for example, a missing right
- parenthesis. */
- yyerror ("possibly missing ')'");
- yyval.ttype = chainon (yyvsp[-1].ttype, void_list_node);
- TREE_PARMLIST (yyval.ttype) = 1;
- yyungetc (':', 0);
- yychar = ')';
- ;
- break;}
- case 518:
- #line 2798 "cplus-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
- break;}
- case 519:
- #line 2800 "cplus-parse.y"
- { yyval.ttype = chainon (yyvsp[-3].ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-1].ttype)); ;
- break;}
- case 520:
- #line 2802 "cplus-parse.y"
- { yyval.ttype = chainon (yyvsp[-3].ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-1].ttype)); ;
- break;}
- case 521:
- #line 2809 "cplus-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
- see_typename (); ;
- break;}
- case 522:
- #line 2812 "cplus-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
- see_typename (); ;
- break;}
- case 523:
- #line 2815 "cplus-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
- see_typename (); ;
- break;}
- case 524:
- #line 2818 "cplus-parse.y"
- { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
- see_typename (); ;
- break;}
- case 525:
- #line 2823 "cplus-parse.y"
- { see_typename (); ;
- break;}
- case 526:
- #line 2827 "cplus-parse.y"
- { dont_see_typename (); ;
- break;}
- case 527:
- #line 2832 "cplus-parse.y"
- {
- warning ("type specifier omitted for parameter");
- yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-3].ttype)), yyvsp[0].ttype);
- ;
- break;}
- case 528:
- #line 2837 "cplus-parse.y"
- {
- warning ("type specifier omitted for parameter");
- yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-3].ttype)), yyvsp[0].ttype);
- ;
- break;}
- case 529:
- #line 2846 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 530:
- #line 2848 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 531:
- #line 2853 "cplus-parse.y"
- { yyval.ttype = NULL_TREE; ;
- break;}
- case 532:
- #line 2855 "cplus-parse.y"
- { yyval.ttype = yyvsp[0].ttype; ;
- break;}
- case 533:
- #line 2860 "cplus-parse.y"
- { yyval.ttype = void_list_node; ;
- break;}
- case 534:
- #line 2862 "cplus-parse.y"
- { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 535:
- #line 2864 "cplus-parse.y"
- { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
- break;}
- case 536:
- #line 2866 "cplus-parse.y"
- { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
- break;}
- case 537:
- #line 2868 "cplus-parse.y"
- { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
- break;}
- case 538:
- #line 2870 "cplus-parse.y"
- { yyval.ttype = build_decl_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 539:
- #line 2872 "cplus-parse.y"
- { yyval.ttype = build_decl_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
- case 541:
- #line 2877 "cplus-parse.y"
- {
- TREE_CHAIN (yyvsp[0].ttype) = yyvsp[-2].ttype;
- yyval.ttype = yyvsp[0].ttype;
- ;
- break;}
- case 542:
- #line 2885 "cplus-parse.y"
- { yyval.ttype = build_opid (0, MULT_EXPR); ;
- break;}
- case 543:
- #line 2887 "cplus-parse.y"
- { yyval.ttype = build_opid (0, TRUNC_DIV_EXPR); ;
- break;}
- case 544:
- #line 2889 "cplus-parse.y"
- { yyval.ttype = build_opid (0, TRUNC_MOD_EXPR); ;
- break;}
- case 545:
- #line 2891 "cplus-parse.y"
- { yyval.ttype = build_opid (0, PLUS_EXPR); ;
- break;}
- case 546:
- #line 2893 "cplus-parse.y"
- { yyval.ttype = build_opid (0, MINUS_EXPR); ;
- break;}
- case 547:
- #line 2895 "cplus-parse.y"
- { yyval.ttype = build_opid (0, BIT_AND_EXPR); ;
- break;}
- case 548:
- #line 2897 "cplus-parse.y"
- { yyval.ttype = build_opid (0, BIT_IOR_EXPR); ;
- break;}
- case 549:
- #line 2899 "cplus-parse.y"
- { yyval.ttype = build_opid (0, BIT_XOR_EXPR); ;
- break;}
- case 550:
- #line 2901 "cplus-parse.y"
- { yyval.ttype = build_opid (0, BIT_NOT_EXPR); ;
- break;}
- case 551:
- #line 2903 "cplus-parse.y"
- { yyval.ttype = build_opid (0, yyvsp[0].code); ;
- break;}
- case 552:
- #line 2905 "cplus-parse.y"
- { yyval.ttype = build_opid (0, yyvsp[0].code); ;
- break;}
- case 553:
- #line 2907 "cplus-parse.y"
- { yyval.ttype = build_opid (MODIFY_EXPR, yyvsp[0].code); ;
- break;}
- case 554:
- #line 2909 "cplus-parse.y"
- {
- yyval.ttype = build_opid (MODIFY_EXPR, NOP_EXPR);
- if (current_class_type)
- {
- TYPE_HAS_ASSIGNMENT (current_class_type) = 1;
- TYPE_GETS_ASSIGNMENT (current_class_type) = 1;
- }
- ;
- break;}
- case 555:
- #line 2918 "cplus-parse.y"
- { yyval.ttype = build_opid (0, yyvsp[0].code); ;
- break;}
- case 556:
- #line 2920 "cplus-parse.y"
- { yyval.ttype = build_opid (0, yyvsp[0].code); ;
- break;}
- case 557:
- #line 2922 "cplus-parse.y"
- { yyval.ttype = build_opid (0, POSTINCREMENT_EXPR); ;
- break;}
- case 558:
- #line 2924 "cplus-parse.y"
- { yyval.ttype = build_opid (0, PREDECREMENT_EXPR); ;
- break;}
- case 559:
- #line 2926 "cplus-parse.y"
- { yyval.ttype = build_opid (0, TRUTH_ANDIF_EXPR); ;
- break;}
- case 560:
- #line 2928 "cplus-parse.y"
- { yyval.ttype = build_opid (0, TRUTH_ORIF_EXPR); ;
- break;}
- case 561:
- #line 2930 "cplus-parse.y"
- { yyval.ttype = build_opid (0, TRUTH_NOT_EXPR); ;
- break;}
- case 562:
- #line 2932 "cplus-parse.y"
- { yyval.ttype = build_opid (0, COND_EXPR); ;
- break;}
- case 563:
- #line 2934 "cplus-parse.y"
- { yyval.ttype = build_opid (0, yyvsp[0].code); ;
- break;}
- case 564:
- #line 2936 "cplus-parse.y"
- { yyval.ttype = build_opid (0, COMPONENT_REF); ;
- break;}
- case 565:
- #line 2938 "cplus-parse.y"
- {
- if (yychar == YYEMPTY)
- yychar = YYLEX;
- if (yychar == '(' || yychar == LEFT_RIGHT)
- {
- yyval.ttype = build_opid (0, METHOD_CALL_EXPR);
- if (current_class_type)
- {
- tree t = current_class_type;
- while (t)
- {
- TYPE_OVERLOADS_METHOD_CALL_EXPR (t) = 1;
- t = TYPE_NEXT_VARIANT (t);
- }
- }
- }
- else
- yyval.ttype = build_parse_node (CALL_EXPR, build_opid (0, COMPONENT_REF), void_list_node, yyvsp[0].ttype);
- ;
- break;}
- case 566:
- #line 2958 "cplus-parse.y"
- { yyval.ttype = build_opid (0, CALL_EXPR);
- if (current_class_type)
- {
- tree t = current_class_type;
- while (t)
- {
- TYPE_OVERLOADS_CALL_EXPR (t) = 1;
- t = TYPE_NEXT_VARIANT (t);
- }
- }
- ;
- break;}
- case 567:
- #line 2970 "cplus-parse.y"
- { yyval.ttype = build_opid (0, ARRAY_REF);
- if (current_class_type)
- {
- tree t = current_class_type;
- while (t)
- {
- TYPE_OVERLOADS_ARRAY_REF (t) = 1;
- t = TYPE_NEXT_VARIANT (t);
- }
- }
- ;
- break;}
- case 568:
- #line 2982 "cplus-parse.y"
- {
- yyval.ttype = build_opid (0, NEW_EXPR);
- if (current_class_type)
- {
- tree t = current_class_type;
- while (t)
- {
- TREE_GETS_NEW (t) = 1;
- t = TYPE_NEXT_VARIANT (t);
- }
- }
- ;
- break;}
- case 569:
- #line 2995 "cplus-parse.y"
- {
- yyval.ttype = build_opid (0, DELETE_EXPR);
- if (current_class_type)
- {
- tree t = current_class_type;
- while (t)
- {
- TREE_GETS_DELETE (t) = 1;
- t = TYPE_NEXT_VARIANT (t);
- }
- }
- ;
- break;}
- case 570:
- #line 3011 "cplus-parse.y"
- {
- yyval.ttype = build1 (TYPE_EXPR, yyvsp[-1].ttype, yyvsp[0].ttype);
- ;
- break;}
- case 571:
- #line 3015 "cplus-parse.y"
- { yyval.ttype = build_opid (ERROR_MARK, ERROR_MARK); ;
- break;}
- }
- /* the action file gets copied in in place of this dollarsign */
- #line 408 "bison.simple"
-
- yyvsp -= yylen;
- yyssp -= yylen;
- #ifdef YYLSP_NEEDED
- yylsp -= yylen;
- #endif
-
- #ifdef YYDEBUG
- if (yydebug)
- {
- short *ssp1 = yyss - 1;
- fprintf (stderr, "state stack now");
- while (ssp1 != yyssp)
- fprintf (stderr, " %d", *++ssp1);
- fprintf (stderr, "\n");
- }
- #endif
-
- *++yyvsp = yyval;
-
- #ifdef YYLSP_NEEDED
- yylsp++;
- if (yylen == 0)
- {
- yylsp->first_line = yylloc.first_line;
- yylsp->first_column = yylloc.first_column;
- yylsp->last_line = (yylsp-1)->last_line;
- yylsp->last_column = (yylsp-1)->last_column;
- yylsp->text = 0;
- }
- else
- {
- yylsp->last_line = (yylsp+yylen-1)->last_line;
- yylsp->last_column = (yylsp+yylen-1)->last_column;
- }
- #endif
-
- /* Now "shift" the result of the reduction.
- Determine what state that goes to,
- based on the state we popped back to
- and the rule number reduced by. */
-
- yyn = yyr1[yyn];
-
- yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
- if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
- yystate = yytable[yystate];
- else
- yystate = yydefgoto[yyn - YYNTBASE];
-
- goto yynewstate;
-
- yyerrlab: /* here on detecting error */
-
- if (! yyerrstatus)
- /* If not already recovering from an error, report this error. */
- {
- ++yynerr;
- yyerror("parse error");
- }
-
- if (yyerrstatus == 3)
- {
- /* if just tried and failed to reuse lookahead token after an error, discard it. */
-
- /* return failure if at end of input */
- if (yychar == YYEOF)
- YYABORT;
-
- #ifdef YYDEBUG
- if (yydebug)
- fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
- #endif
-
- yychar = YYEMPTY;
- }
-
- /* Else will try to reuse lookahead token
- after shifting the error token. */
-
- yyerrstatus = 3; /* Each real token shifted decrements this */
-
- goto yyerrhandle;
-
- yyerrdefault: /* current state does not do anything special for the error token. */
-
- #if 0
- /* This is wrong; only states that explicitly want error tokens
- should shift them. */
- yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
- if (yyn) goto yydefault;
- #endif
-
- yyerrpop: /* pop the current state because it cannot handle the error token */
-
- if (yyssp == yyss) YYABORT;
- yyvsp--;
- yystate = *--yyssp;
- #ifdef YYLSP_NEEDED
- yylsp--;
- #endif
-
- #ifdef YYDEBUG
- if (yydebug)
- {
- short *ssp1 = yyss - 1;
- fprintf (stderr, "Error: state stack now");
- while (ssp1 != yyssp)
- fprintf (stderr, " %d", *++ssp1);
- fprintf (stderr, "\n");
- }
- #endif
-
- yyerrhandle:
-
- yyn = yypact[yystate];
- if (yyn == YYFLAG)
- goto yyerrdefault;
-
- yyn += YYTERROR;
- if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
- goto yyerrdefault;
-
- yyn = yytable[yyn];
- if (yyn < 0)
- {
- if (yyn == YYFLAG)
- goto yyerrpop;
- yyn = -yyn;
- goto yyreduce;
- }
- else if (yyn == 0)
- goto yyerrpop;
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- #ifdef YYDEBUG
- if (yydebug)
- fprintf(stderr, "Shifting error token, ");
- #endif
-
- *++yyvsp = yylval;
- #ifdef YYLSP_NEEDED
- *++yylsp = yylloc;
- #endif
-
- yystate = yyn;
- goto yynewstate;
- }
- #line 3018 "cplus-parse.y"
-
-
- #if YYDEBUG != 0
- db_yyerror (s, yyps, yychar)
- char *s;
- short *yyps;
- int yychar;
- {
- FILE *yyout;
- char buf[1024];
- int st;
-
- yyerror (s);
- printf ("State is %d, input token number is %d.\n", *yyps, yychar);
-
- #ifdef PARSE_OUTPUT
- if (*yyps < 1) fatal ("Cannot start from here");
- else if ((yyout = fopen (PARSE_OUTPUT, "r")) == NULL)
- error ("cannot open file %s", PARSE_OUTPUT);
- else
- {
- printf ("That is to say,\n\n");
- while (fgets(buf, sizeof (buf)-1, yyout))
- {
- if (buf[0] != 's') continue;
- st = atoi (buf+6);
- if (st != *yyps) continue;
- printf ("%s", buf);
- while (fgets (buf, sizeof (buf)-1, yyout))
- {
- if (buf[0] == 's') break;
- printf ("%s", buf);
- }
- break;
- }
- printf ("With the token %s\n", yytname[YYTRANSLATE (yychar)]);
- fclose (yyout);
- }
- #endif
- }
- #endif
-
- void
- yyerror (string)
- char *string;
- {
- extern FILE *finput;
- extern char *token_buffer;
- char buf[200];
-
- strcpy (buf, string);
-
- /* We can't print string and character constants well
- because the token_buffer contains the result of processing escapes. */
- if (end_of_file || feof (finput))
- strcat (buf, " at end of input");
- else if (token_buffer[0] == 0)
- strcat (buf, " at null character");
- else if (token_buffer[0] == '"')
- strcat (buf, " before string constant");
- else if (token_buffer[0] == '\'')
- strcat (buf, " before character constant");
- else
- strcat (buf, " before `%s'");
-
- error (buf, token_buffer);
- }
-
- static int *reduce_count;
- static int *token_count;
-
- #define REDUCE_LENGTH (sizeof (yyr2) / sizeof (yyr2[0]))
- #define TOKEN_LENGTH (256 + YYNTBASE + 1)
-
- int *
- init_parse ()
- {
- #ifdef GATHER_STATISTICS
- reduce_count = (int *)malloc (sizeof (int) * (REDUCE_LENGTH + 1));
- bzero (reduce_count, sizeof (int) * (REDUCE_LENGTH + 1));
- reduce_count += 1;
- token_count = (int *)malloc (sizeof (int) * TOKEN_LENGTH);
- bzero (token_count, sizeof (int) * TOKEN_LENGTH);
- #endif
- return token_count;
- }
-
- #ifdef GATHER_STATISTICS
- void
- yyhook (yyn)
- int yyn;
- {
- reduce_count[yyn] += 1;
- }
- #endif
-
- static int reduce_cmp (p, q)
- int *p, *q;
- {
- return reduce_count[*q] - reduce_count[*p];
- }
-
- static int token_cmp (p, q)
- int *p, *q;
- {
- return token_count[*q] - token_count[*p];
- }
-
- void
- print_parse_statistics ()
- {
- int i;
- int maxlen = REDUCE_LENGTH;
- unsigned *sorted;
-
- if (reduce_count[-1] == 0)
- return;
-
- if (TOKEN_LENGTH > REDUCE_LENGTH)
- maxlen = TOKEN_LENGTH;
- sorted = (unsigned *) alloca (sizeof (int) * maxlen);
-
- for (i = 0; i < TOKEN_LENGTH; i++)
- sorted[i] = i;
- qsort (sorted, TOKEN_LENGTH, sizeof (int), token_cmp);
- for (i = 0; i < TOKEN_LENGTH; i++)
- {
- int index = sorted[i];
- if (token_count[index] == 0)
- break;
- if (token_count[index] < token_count[-1])
- break;
- fprintf (stderr, "token %d", index);
- #if YYDEBUG
- fprintf (stderr, ", `%s'", yytname[YYTRANSLATE (index)]);
- #endif
- fprintf (stderr, ", count = %d\n", token_count[index]);
- }
- fprintf (stderr, "\n");
- for (i = 0; i < REDUCE_LENGTH; i++)
- sorted[i] = i;
- qsort (sorted, REDUCE_LENGTH, sizeof (int), reduce_cmp);
- for (i = 0; i < REDUCE_LENGTH; i++)
- {
- int index = sorted[i];
- if (reduce_count[index] == 0)
- break;
- if (reduce_count[index] < reduce_count[-1])
- break;
- fprintf (stderr, "rule %d", index);
- #if YYDEBUG
- fprintf (stderr, ", line %d", yyrline[index]);
- #endif
- fprintf (stderr, ", count = %d\n", reduce_count[index]);
- }
- fprintf (stderr, "\n");
- }
-